• 締切済み

アンダースコアを消したい

今会社でUNIXを使っているのですが、 ファイル名にアンダースコアの入ったファイルがあるのですが、 それを消したいと思っております。 hoge_1.txtだったらhoge1.txtというようにしたいのですが mvコマンド時の正規表現の仕方がわかりません。 mv hoge*_.txt→hoge*.txt というようにしましたができませんでした。 良い方法を教えてください。 お願い致します。

みんなの回答

  • astronaut
  • ベストアンサー率58% (303/516)
回答No.2

renameコマンドが簡単ですよ $ rename _ "" hoge*_.txt

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

まず, ファイル名を指定する「ワイルドカード」と「正規表現」は区別してください. で条件ですが, ・アンダースコアが入っている全てのファイルに対し, ファイル名にある全てのアンダースコアを消す ということでいいですか? これなら for f in *_*; do mv $f `echo $f|tr -d _`; done でいいような気がします. 動作は保証しませんが.

関連するQ&A