awk中如何用正则表达式判断某位数值的位数?
比如有如下记录:1|无缝钢管|GB8163|D114x52|热压弯头|GB12459|DN100。。。。若干条记录10|连接件|HG-16|DN10011|支架|HG-1...
比如有如下记录:
1|无缝钢管|GB8163|D114x5
2|热压弯头|GB12459|DN100
。。。。若干条记录
10|连接件|HG-16|DN100
11|支架|HG-16|DN100
。。。。若干条记录
现在想用两个数组将第一位是各位数的记录和第一位是两位数的记录分开,即将1~9条存储于Lines1[1]~Lines1[9]中,然后将10~99存储于Lines2[1]~Lines2[99]中。
想请教一下,在用if判断时,正则表达式应该如何表达?
谢谢 展开
1|无缝钢管|GB8163|D114x5
2|热压弯头|GB12459|DN100
。。。。若干条记录
10|连接件|HG-16|DN100
11|支架|HG-16|DN100
。。。。若干条记录
现在想用两个数组将第一位是各位数的记录和第一位是两位数的记录分开,即将1~9条存储于Lines1[1]~Lines1[9]中,然后将10~99存储于Lines2[1]~Lines2[99]中。
想请教一下,在用if判断时,正则表达式应该如何表达?
谢谢 展开
展开全部
#!/bin/bash
output()
{
cat<<EOF
1|23
2|24
10|30
11|44
EOF
}
output | awk -F"|" '{
if($1 ~ /^[0-9]{1,1}$/)
line1[$1]=$2
else if($1 ~ /^[0-9]{2,2}$/)
line2[$1]=$2
}
END {
print "line1 contents"
for(key in line1)
print "key " key " value " line1[key]
print "line2 contents"
for(key in line2)
print "key " key " value " line2[key]
}'
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
正则表达式匹配开头的行数么?
那么模式应该写成
^[0-9]\{1}
花括号后面的数字表示数字位数
^^[0-9]\{2} 就是两位,依此类推
那么模式应该写成
^[0-9]\{1}
花括号后面的数字表示数字位数
^^[0-9]\{2} 就是两位,依此类推
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
给他们赋值=X啊!来判断!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询