grep에서 위치 매개변수 사용

grep에서 위치 매개변수 사용

프로젝트 파일에서 무언가를 찾을 때 문자열을 더 쉽게 복사/붙여넣을 수 있도록 위치 매개변수를 적용하려고 합니다.

이 명령은 잘 작동합니다.

grep myString -R .

하지만 이 명령은 다음을 수행하지 않습니다.

grep "$1" -R . myString

작은 따옴표, 괄호 사용 등 여러 조합을 시도했습니다.

내 프로젝트에서 문자열을 재귀적으로 검색하는 방법에 대한 제안을 보내주셔서 감사합니다.

편집: 쉘 스크립트가 아닌 터미널에서 직접 이 명령을 사용해 보았습니다.

답변1

귀하의 질문은 매우 명확하지 않으며 정확하게 이해하고 있는지 잘 모르겠습니다. 내 이해가 틀렸다면 사과드립니다.

그러나 내가 올바르게 이해했다면 검색 패턴을 명령 끝에 넣는 방식으로 grep을 사용할 수 있기를 원할 것입니다. 복사하는 것보다 명령 끝에 복사하여 붙여 넣는 것이 더 편리하기 때문입니다. 특히 명령을 여러 번 실행할 때 다른 검색 모드를 사용하는 경우 명령 시작 부분에 붙여넣으세요.

불행하게도 grep의 구문에서는 검색 패턴이 지정된 검색 위치 앞에 나타나야 합니다.

제 생각에는 두 가지 해결책이 있습니다. 첫 번째는 함수를 정의하는 것입니다.

이것을 에 넣거나 .bashrc세션에 대해 한 번만 정의할 수 있습니다.

recgrep() {
    grep "$1" -R .
}

그런 다음 다음과 같이 함수를 호출할 수 있습니다.

recgrep myString

현재 폴더에서 mystring을 재귀적으로 검색합니다.

또 다른 하나는 사용하는 것입니다.립그렙, GNU grep 대신 기본적으로 재귀적으로 검색합니다. 내 경험상 GNU grep보다 빠릅니다.

rg myString

관련 정보