Bash
find 和 grep 的問題
我在中定義了以下別名
~/.bashrc
:alias fg='find . -name $1 | xargs grep --color $2'
為了寫
fg "*.txt" " my_text "
並找到所有副檔名為 .txt 並包含“my_text”的文件,但它不起作用。為什麼?
bash 中的別名不帶參數(如前所述),因此當您需要類似的東西時,可以使用 bash 函式(如 @l0b0 提供的函式)。
但是您在這裡嘗試實現的目標可以通過僅使用 grep 以更好的方式完成。
grep -r --color --include="*.txt" " my_text " ./
順便說一句,
fg
是一個內置命令的shell,一個重要的。您應該避免將其用作別名或函式的名稱。編輯:在一個函式中
$ ffg() { rgrep --color --include="$1" "$2" ./; } $ ffg "*.txt" " my_text "
find ./ -name "$1" -exec grep -l "$2" {} \;
應該做的伎倆。