grep 동결

grep 동결

grep을 사용하는 데 문제가 있습니다. Win 10에 ubuntu 18.04가 설치되어 있습니다. 가장 간단한 명령을 정지하고 원하면 취소할 수 있으며 새 파일을 생성하지만 아무 것도 쓰지 않습니다.

$ mkdir test
$ cd test
$ ls
$ sudo grep "Werk!" > new
^C
$ ls
new
$ cat new

나는 분명한 것을 놓치고 있습니까?

답변1

예. STDIN을 grep'ing 중이므로 결코 오지 않는 입력을 기다리며 영원히 정지됩니다.

grep에 대한 인수로 "."를 포함하고 현재 디렉터리를 grep하기 위해 -r(재귀적으로)을 포함할 수 있습니다.

grep -r hello .

grep다른 사람들은 기본 동작이 이상적이지 않다는 것을 발견했기 때문에 grep이 문제가 없는 몇 가지 대안을 찾을 수 있습니다. 예를 들어은을 찾는 사람이름으로 검색하면 ag기본적으로 현재 디렉터리를 재귀적으로 검색하므로 올바른 구문에 대한 추측은 정확합니다 ag.

ag hello

ag또한 대문자를 포함하지 않는 한 대소문자를 구분하지 않는 검색이 기본값으로 설정됩니다. 이는 아마도 여러분이 원하는 것일 수도 있습니다. 또한 기본적으로 색상을 사용하고 grep기본적으로 사용되는 더 약하고 오래된 glob 스타일 일치 대신 더 강력한 PCRE 정규식 엔진(예: Perl)을 사용합니다 .

이와 같은 사용성 문제는 grep가능한 경우, grep필요할 때만 새로운 대안을 사용해야 하는 이유입니다. grep공유할 수 있는 쉘 스크립트용 표준 도구와 로그인할 Linux 시스템의 표준 유틸리티를 아는 것은 여전히 ​​유용합니다.

"ripgrep"과 "ack"는 grep의 또 다른 좋은 대안입니다.

답변2

grep패턴을 검색하는 파일을 지정하는 명령의 두 번째 매개변수가 누락되었습니다 .

주의해주세요사람 1 grep도움을 받으세요 grep.

답변3

"new" 파일에 텍스트를 기록하고 싶을 수도 있습니다. "echo texts > new"를 사용하면 됩니다.

관련 정보