Find

如何使用 -EXEC grep FIND 的結果並仍然輸出到文件?

  • November 12, 2021

最好案例子來解釋。

我能:

find . -name "*.py" -type f > output.txt

但是我怎樣才能將輸出儲存到同一個文件中:

find . -name "*.py" -type f -exec grep "something" {} \

我不能只做

find . -name "*.py" -type f -exec grep "something" {} \ > output.txt

如果我理解正確,這就是你想要做的:

find . -name '*.py' -print0 | xargs -0 grep 'something' > output.txt

查找所有擴展名為.py. 如果文件存在,將被截斷,否則將被創建。grep``something``output.txt``output.txt

使用-exec

find . -name '*.py' -exec grep 'something' {} \; > output.txt

我在這里合並了 Chris Downs 評論:上述命令將導致grep執行多次,因為find找到通過給定測試的路徑名(僅-name上面的單個測試)。但是,如果您將 , 替換為\;,+grep使用多個路徑名呼叫 from find(直到某個限制)。

有關該主題的更多資訊,請參閱問題Using semicolon (;) vs plus (+) with exec in find

引用自:https://unix.stackexchange.com/questions/21033