![フルテキストファイルから1行に表示されるすべての.after]を削除します。](https://linux33.com/image/54325/%E3%83%95%E3%83%AB%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%8B%E3%82%891%E8%A1%8C%E3%81%AB%E8%A1%A8%E7%A4%BA%E3%81%95%E3%82%8C%E3%82%8B%E3%81%99%E3%81%B9%E3%81%A6%E3%81%AE.after%5D%E3%82%92%E5%89%8A%E9%99%A4%E3%81%97%E3%81%BE%E3%81%99%E3%80%82.png)
各行の後にある.]を削除する必要があるファイルがあります。
例えば
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