2017-02-23 4 views
0

文字の前後に1つのアンダースコア(_)を削除するにはどうすればよいですか?私は空白を取り除くために小文字にrename 'y/A-Z/a-z/' *を使用してrename 's/ /_/g' *上記の形式にファイル名を取得するにはLinuxコマンドラインで文字の前後にアンダースコアを1つ取り除く

filename_part_one _-_ filename_part_two.file

のような名前のファイルの数が多いです。最後のステップは、 - と前後にアンダースコアを削除することです。好ましくは、1行のコマンドを使用する。

答えて

1

_-_-と置き換えると、s/_-_/-/となります。あなたが名前を変更する一つの引数にそれをすべて置くことができます。

touch "FileName Part one_-_filename_part_two.file" 
rename 'y/A-Z/a-z/; s/ /_/g; s/_-_/-/' "FileName Part one_-_filename_part_two.file" 
ls *.file 
> filename_part_one-filename_part_two.file 
+0

私が使用して名前の変更「Y/A-Z/Z-/; s// _/g;しかし、これは_-_を次のように置き換えているわけではありません:filename_part_one-filename_part_two.file < - これは私が最終的にファイル名を必要とする方法です。 –

+0

@SteveFitzsimons私はあなたが置き換えたいと思います"_-_"は " - "ですか?私はそれに応じて答えを変えた。 –

+0

_-_を含むファイルの一部が2回表示されます。 –

関連する問題