![grep이 전체 줄을 인쇄하지 않는 이유는 무엇입니까? [복사]](https://linux55.com/image/66728/grep%EC%9D%B4%20%EC%A0%84%EC%B2%B4%20%EC%A4%84%EC%9D%84%20%EC%9D%B8%EC%87%84%ED%95%98%EC%A7%80%20%EC%95%8A%EB%8A%94%20%EC%9D%B4%EC%9C%A0%EB%8A%94%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F%20%5B%EB%B3%B5%EC%82%AC%5D.png)
ls
명령을 입력하면 다음과 같은 출력이 나타납니다.
-$ ls
aNode ANode bNode BNode cNode CNode DUMP file1 hello.txt TEST.txt
-$
표시된 대로 위의 출력은 별도의 one
줄에 표시됩니다.filenames
spaces
다음에는 일치하는 항목을 찾는 데 사용합니다 grep
.
일치하는 항목이 발견되면 전체 줄이 인쇄될 것으로 예상합니다.
그러나 대신 grep은 일치 항목을 포함하는 전체 줄이 아닌 일치 항목만 인쇄합니다. 아래를 참조하세요.
-$ ls | grep 'aNode'
aNode
-$
왜 이런 일이 발생합니까? grep
전체 줄이 인쇄되지 않는 이유는 무엇 입니까?
답변1
ls
파이프 대신 터미널에 쓰는 경우 출력 형식이 다르며 콘텐츠가 다르게 표시됩니다. 파이프에 쓸 때 한 줄에 하나의 항목만 쓰므로 grep
각 목록을 개별적으로 처리할 수 있습니다.
따라서 이렇게 하면 grep
그냥 실행하여 화면에 인쇄할 때와는 다른 출력을 얻게 됩니다.ls
ls
grep
이렇게 하면 같은 효과를 볼 수 있습니다
ls | cat
그러면 모든 항목이 한 줄에 하나씩 표시됩니다.