特定のファイル拡張子から文字列を検索し、フォルダ名に置き換えます。

特定のファイル拡張子から文字列を検索し、フォルダ名に置き換えます。

ディレクトリツリー(../MyParentFolder)内の特定のファイル拡張子(「* .txt」)内で文字列(「AAA」)を見つけ、サブフォルダ名(MySubfolder)に変更したいと思います。誰かが同様の質問をしたことを知っています。ここただし、サブフォルダの名前を変更するには移動できません。

ベストアンサー1

3番目の例を使う(exec受け入れられた回答到着特定のファイル拡張子の文字列の検索と置換:

find myDirectory/. -type f -name '*.txt' -exec sed -i "$replace" {} +

まず、設定は$replace次のとおりです。

replace='s/AAA/MySubfolder/'

findその後、コマンドを実行してください。


exportreplace注:始める必要があるかもしれません。その他コマンド処理の使用find:

export replace='s/AAA/MySubfolder/'

また、「AAA」が1行に複数回表示され、それらをすべて置き換えるには、次の手順を実行する必要があります。グローバル、このように

s/AAA/MySubfolder/g

おすすめ記事