我有一个包含id和number的文本文件。所有数字预计都是10位数。在以下示例中,只有第3行是正确的。
36000003326|917668001520
36000003359|919005119822
36000003417|9153914209
36000003508|919454102627
如果数字长度为12位,则应删除前2个国家/地区的数字。预期结果如下:
36000003326|7668001520
36000003359|9005119822
36000003417|9153914209
36000003508|9454102627
以下sed正在运行,但它不会检查目标条目是10位数还是12位数。
sed 's/|91/|/'
答案 0 :(得分:3)
这个怎么样?
sed -r 's/\|..(.{10})/|\1/'
答案 1 :(得分:1)
使用awk的一种方式:
awk -F"|" 'length($2)>10{$2=substr($2,3);}1' OFS="|" file
答案 2 :(得分:0)
这对你很重要(GNU sed):
sed -r 's/[0-9]{2}([0-9]{10})$/\1/' file