프로젝트 파일에서 무언가를 찾을 때 문자열을 더 쉽게 복사/붙여넣을 수 있도록 위치 매개변수를 적용하려고 합니다.
이 명령은 잘 작동합니다.
grep myString -R .
하지만 이 명령은 다음을 수행하지 않습니다.
grep "$1" -R . myString
작은 따옴표, 괄호 사용 등 여러 조합을 시도했습니다.
내 프로젝트에서 문자열을 재귀적으로 검색하는 방법에 대한 제안을 보내주셔서 감사합니다.
편집: 쉘 스크립트가 아닌 터미널에서 직접 이 명령을 사용해 보았습니다.
답변1
귀하의 질문은 매우 명확하지 않으며 정확하게 이해하고 있는지 잘 모르겠습니다. 내 이해가 틀렸다면 사과드립니다.
그러나 내가 올바르게 이해했다면 검색 패턴을 명령 끝에 넣는 방식으로 grep을 사용할 수 있기를 원할 것입니다. 복사하는 것보다 명령 끝에 복사하여 붙여 넣는 것이 더 편리하기 때문입니다. 특히 명령을 여러 번 실행할 때 다른 검색 모드를 사용하는 경우 명령 시작 부분에 붙여넣으세요.
불행하게도 grep의 구문에서는 검색 패턴이 지정된 검색 위치 앞에 나타나야 합니다.
제 생각에는 두 가지 해결책이 있습니다. 첫 번째는 함수를 정의하는 것입니다.
이것을 에 넣거나 .bashrc
세션에 대해 한 번만 정의할 수 있습니다.
recgrep() {
grep "$1" -R .
}
그런 다음 다음과 같이 함수를 호출할 수 있습니다.
recgrep myString
현재 폴더에서 mystring을 재귀적으로 검색합니다.
또 다른 하나는 사용하는 것입니다.립그렙, GNU grep 대신 기본적으로 재귀적으로 검색합니다. 내 경험상 GNU grep보다 빠릅니다.
rg myString