Find
如何使用 -EXEC grep FIND 的結果並仍然輸出到文件?
最好案例子來解釋。
我能:
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
使用多個路徑名呼叫 fromfind
(直到某個限制)。有關該主題的更多資訊,請參閱問題Using semicolon (;) vs plus (+) with exec in find。