名前に特定のパターンを含むファイルを編集する必要があります。これらのファイルは、複数の階層ディレクトリに分散しています。
次のように同じことを達成するために、次の助けを借りてfind
使用しています。sed
xargs
find . -type f -name "file*" | sed -i.bak 's/word1/replace_word1/g'
私の問題は、バックアップ ファイル (* .bak )からの変更を元に戻したいということです。サンプル ディレクトリ ツリーは次のようになります。同じことを達成するためのLinuxコマンド(チェーンの可能性があります)を探しています。
$ tree
.
|-- pdir1
| |-- dir1
| | |-- dir2
| | | |-- file2
| | | `-- file2.bak
| | |-- file1
| | `-- file1.bak
| `-- dir3
| |-- file3
| `-- file3.bak
`-- pdir2
|-- file1
`-- file1.bak
次のコマンドを使用して、すべてのバックアップ ファイルを見つけることができますfind
。しかし、次に何をすべきかを理解できません。あなたが私がこれを解決するのを手伝ってくれるなら、それはかなりのことです.
find . -type f -name "file*.bak"
ノート
私はこの問題を一般的なシナリオとして観察しています。私はこれに何度も直面しましたが、小さなラッパースクリプトを書くことで逃げました。ここでは、一般的で簡潔な解決策を望んでいます。