我有一个文件,需要删除其中的 .每行的 ] 之后
例如
xyz[1.2]35.23
xyz[1.2.3]35.234
输出应该是
xyz[1.2]3523
xyz[1.2.3]35234
答案1
要删除最右边的点之后的点]
:
sed -e :1 -e 's/\(][^]]*\)\.\([^]]*\)$/\1\2/;t1'
或者:
awk -F']' -vOFS=']' 'NF>1 {gsub(/\./,"",$NF)};1'
或者:
perl -pe 's/.*\]\K.*/$&=~s|\.||gr/e'
删除后]
不管]
右边是否有其他。
sed -e :1 -e 's/\(].*\)\./\1/;t1'
或者:
perl -pe 's/.*?\]\K.*/$&=~s|\.||gr/e'
答案2
和perl
:
$ perl -pe 's/(?<=])\d+\K\.//g' file
xyz[1.2]3523
xyz[1.2.3]35234