다음과 같은 별칭이 정의되어 있습니다 ~/.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"
}