Bash

find 和 grep 的問題

  • June 25, 2013

我在中定義了以下別名~/.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" {} \;應該做的伎倆。

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