複数の `find`コマンドの出力をどのように組み合わせるのですか?


11
find -type f -name "*.avi" -exec md5sum {} + > checklist.chk
find -type f -name "*.mp4" -exec md5sum {} + > checklist.chk

これら2つのコマンドを組み合わせる方法は?

  1. 1つのコマンドで両方の検索語を結合するか、

  2. そのため、各コマンドは同じファイルに出力を追加します。

私がやろうとしていることが明確であることを願っています。

回答:


25

組み合わせる:

find -type f \( -name "*.avi" -or -name '*.mp4' \) -exec md5sum {} + > checklist.chk 

1つのファイルに出力を追加する:

find -type f -name "*.avi" -exec md5sum {} + > checklist.chk
find -type f -name "*.mp4" -exec md5sum {} + >> checklist.chk

1
+1は、出力ファイルに追加する可能性についても言及します。
ドゥブ

8

これを行うには多くの方法があります。

Orを使用-o

find . -type f \( -name '*.avi' -o -name '*.mp4' \) -exec md5sum {} + > checklist.chk

正規表現の使用:

find . -type f  -regextype posix-extended -regex '.*\.(avi|mp4)$' -exec md5sum {} + > checklist.chk

両方とも出力をファイルに書き込みますchecklist.chk


1
ありがとう。.-o演算子については知っていたが、構文は知らなかった。また、このように使用できる正規表現についても知りませんでした。ありがとう:)
akya

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.