찾기 및 grep 관련 문제

찾기 및 grep 관련 문제

다음과 같은 별칭이 정의되어 있습니다 ~/.bashrc.

 alias fg='find . -name $1 | xargs grep --color $2'

글을 쓰기 위해

fg "*.txt" " my_text "

확장자가 .txt이고 "my_text"를 포함하는 모든 파일을 찾았지만 작동하지 않습니다. 왜?

답변1

Bash의 별칭은 (앞서 언급한 것처럼) 매개변수를 사용하지 않으므로 비슷한 것이 필요할 때 (@l0b0에서 제공하는 것과 같은) bash 함수를 사용할 수 있습니다.

그러나 여기서 달성하려는 것은 grep을 사용하여 더 나은 방법으로 수행할 수 있습니다.

grep -r --color --include="*.txt" " my_text " ./

그런데 fg이것은 매우 중요한 쉘 내장 명령입니다. 별칭이나 함수 이름으로 사용하지 마세요.

편집 : 기능에서

$ ffg() { rgrep --color --include="$1" "$2" ./; }
$ ffg "*.txt" " my_text "

답변2

find ./ -name "$1" -exec grep -l "$2" {} \;그러면 문제가 해결될 것입니다.

답변3

작동합니다!

function fndg()
{
   find . -name "$1" | xargs grep -rn --color "$2"
}

관련 정보