ディレクトリ内の複数のファイルからプレフィックスを削除する方法

ディレクトリ内の複数のファイルからプレフィックスを削除する方法

次のような名前の約250個のファイルがあります。

no_responseEvent_2002.02.07.03.15.56.970/       
no_responseEvent_2002.02.10.01.47.07.450/       
no_responseEvent_2002.02.13.14.18.46.00/

すべてのファイル名から「no_response」を削除したいと思います。
どうすればいいですか?
forループが機能できることを知っていますが、実装方法は混乱しています。

ベストアンサー1

私は250個のファイルがすべて同じディレクトリにあり、同じ命名パターンに従うと仮定します。もしそうなら、これを行うことができます。

for i in  "$remove"*;do mv "$i" "${i#"$remove"}";done

テスト

ls
no_responseEvent_2002.02.07.03.15.56.970   
no_responseEvent_2002.02.07.03.15.56.972
no_responseEvent_2002.02.07.03.15.56.971  
no_responseEvent_2002.02.07.03.15.56.973

forループを実行した後に得られる結果は次のとおりです。

remove=no_response
for i in  "$remove"*;do mv "$i" "${i#"$remove"}";done
ls
Event_2002.02.07.03.15.56.970  
Event_2002.02.07.03.15.56.971  
Event_2002.02.07.03.15.56.972  
Event_2002.02.07.03.15.56.973

引用する

http://www.commandlinefu.com/commands/view/2519/uniformly-Correct-filenames-in-a-directory

おすすめ記事