파일에서 대시로 시작하는 문자열을 검색한다고 가정해 보겠습니다 "-something"
. 예를 들면 다음과 같습니다.
grep "-something" filename.txt
grep
그러나 다른 실행 파일과 내장 프로그램에서는 이것이 인식하지 못하는 명령줄 스위치일 것으로 예상하기 때문에 오류가 발생합니다 . 이런 일이 발생하지 않도록 하는 방법이 있나요?
답변1
정규식 패턴을 표시하는 데 사용됩니다 grep
.-e
grep -e "-something" filename.txt
일반적인 내장 기능 사용의 경우 --
많은 유틸리티에서 "옵션 끝"을 표시합니다(GNU grep에서는 표시되지 않음).
답변2
grep
간단한 문자 목록을 사용하여 실제로 하이픈으로 시작하지 않도록 정규식을 변경할 수도 있기 때문입니다 .
grep '[-]something'
이 트릭은 전통적으로 잘못된 일치를 피하기 위해 사용되었습니다 ps
.
ps -f | grep myprog
# lists both the process(es) running myprog AND the grep process
# making it harder to do things like choose the right process to kill(1)
ps -f | grep '[m]yprog'
# lists only the 'real' processes because [m]yprog matches "myprog"
# but [m]yprog does NOT match "grep [m]yprog"
하지만 현대에는 그냥 pgrep
(또는 )을 사용하는 것이 pkill
더 편합니다 .