親ディレクトリの名前に基づいてファイルを繰り返し編集します。

親ディレクトリの名前に基づいてファイルを繰り返し編集します。

私は何百ものフォルダがある大きなディレクトリを持っています。ここで、xはランダムな単語です。各フォルダには3つのテキストファイルがあり、すべて「a_b_x」を含む複数の文字列が含まれています。

すべてのディレクトリの名前を変更し、ファイル内の文字列を「a_b_x」から「a_x」に変更しようとしています。これは、「b_」を削除する必要があることを意味します。すべてのファイルを手動で編集するには数時間かかりますので、いくつかのsed魔法を使ってこれを行いたいと思います。

ベストアンサー1

あなたはいつも出力解析の防止ls。これを試してみてください(ありがとうございますスティーブン・チャジェラス提案./*/):

for folder in ./*/; do     
      sed -i 's/_b//g' "$f"/*; mv "$folder" "${folder/_b/}"; 
 done

おすすめ記事