フルテキストファイルから1行に表示されるすべての.after]を削除します。

フルテキストファイルから1行に表示されるすべての.after]を削除します。

各行の後にある.]を削除する必要があるファイルがあります。

例えば

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

関連情報