最後の下線の後とファイル拡張子の前の文字列を削除するには、Unixコマンドを使用してファイルの内容を編集したいと思います。

最後の下線の後とファイル拡張子の前の文字列を削除するには、Unixコマンドを使用してファイルの内容を編集したいと思います。

2行目の2列目(ファイル名)のファイルの内容を編集し、最後のアンダースコアの後ろとファイル拡張子の前の部分を削除したいと思います。

ファイルの内容は次のとおりです。ファイルの内容を入力してください

No|filename|count
01 |com_101_00000_0001_a234.txt|100

結果ファイルの内容

No|filename|count  
01 |com_101_00000_0001.txt|100

アンダースコアは、.ctlファイルのファイル名によって異なります。このようなフォルダには複数のファイルがあり、2行目のすべての.ctlファイルの内容を同様に変更したいと思います。

Operating system details Linux  2.6.32 -696.30.1.e16
GNU/linux

ベストアンサー1

ファイルの内容を変更するには、正規表現を使用してください。

perl -pi -e 's/_[^_\.]+(\.)/$1/g' *

質問が変更される前の以前の答えは、正規表現を使用してファイル名を変更します。

rename 's/_[^_\.]+(\.)/$1/g' *

Perlで書かれているので、移植性に優れています。

http://man7.org/linux/man-pages/man1/rename.1.html

おすすめ記事