如何合并多个`find`命令的输出?


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

如何结合这两个命令?

  1. 通过将两个搜索词组合到一个命令中,或者

  2. 这样每个命令都将其输出添加到同一文件中。

希望很清楚我要做什么。

Answers:


25

结合:

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

将输出添加到一个文件:

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

1
+1还提到了附加到输出文件的可能性。
Dubu 2015年

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 2015年

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.