我正在嘗試在包含字串的目錄中查找特定檔案。
到目前為止我寫的代碼:
for x in $(find "$1" -type f -name "*."$2"") ;
do
grep -Hrnw $x -e "$3"
done
我得到的輸出:
./crop.py:2:import torch
./crop.py:3:import torch.backends.cudnn as cudnn
我正在嘗試在冒號的兩側獲得空格,如下所示:
./crop.py : 2 : import torch
./crop.py : 3 : import torch.backends.cudnn as cudnn
我對 BASH 編程相當陌生。我試過使用sed命令,但沒有運氣。
uj5u.com熱心網友回復:
find "$1" -type f -name "*.$2" | xargs grep -Hrnw -e "$3"| sed 's/:/ : /g'
uj5u.com熱心網友回復:
我正在嘗試在冒號兩側留出空格
我試過使用 sed 命令,但沒有運氣。
sed 's/:/ : /g'
uj5u.com熱心網友回復:
為什么你使用for-loop 來瀏覽find結果,而你可以使用find ... -exec?
像這樣:
find "$1" -type f -name "*."$2"" -exec grep -Hrnw {} -e "$3" \;
(我沒有測驗這個,它可能包含一些錯誤)
uj5u.com熱心網友回復:
建議嘗試一個班輪命令:
grep -Hrnw "$3" $(find "$1" -type f -name "*.$2" -printf "\"%p\"\n") | sed 's/:/ : /g'
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/457902.html
下一篇:使用nftw僅遍歷指定的檔案夾
