Chinaunix
标题:
sed 正则表达式匹配,如何匹配行起始位置的模式?
[打印本页]
作者:
sunfeii
时间:
2011-10-10 14:11
标题:
sed 正则表达式匹配,如何匹配行起始位置的模式?
打个比方,一段文本中的某一行,如下
777798567 aaaa897897890 bbb87978879 7865765744ttuyu
我想把不在行首的数字串的最后四位替换成0000,替换完应该是
777798567 aaaa897890000 bbb87970000 7865760000ttuyu
sed -r 's/([0-9]{3,})[0-9]{4}/\10000/g' filenme > new_file
这样的话就变成
777790000 aaaa897890000 bbb87970000 7865760000ttuyu
可是我不想匹配行首的数字串,咋办呢?
作者:
lw_987
时间:
2013-07-07 12:25
前面添加:grep '^[^0-9]'
作者:
wang1352083
时间:
2013-07-08 12:01
用()分组,将第一组数字去掉
作者:
sk1418
时间:
2013-07-12 04:27
lw_9xx 的办法对你这行好用,但不通用。
你就直接用awk不就省事多了吗
kent$ echo "777798567 aaaa897897890 bbb87978879 7865765744ttuyu"|awk '{for(i=2;i<=NF;i++)sub(/[0-9]{4}$/,"0000",$i)}1'
777798567 aaaa897890000 bbb87970000 7865765744ttuyu
复制代码
作者:
moperyblue
时间:
2016-10-07 13:45
sed -r 's/(\<[^0-9]+\S*)\S{4}/\10000/g'
复制代码
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2