grep이 전체 줄을 인쇄하지 않는 이유는 무엇입니까? [복사]

grep이 전체 줄을 인쇄하지 않는 이유는 무엇입니까? [복사]

ls명령을 입력하면 다음과 같은 출력이 나타납니다.

-$ ls
aNode  ANode  bNode  BNode  cNode  CNode  DUMP  file1  hello.txt  TEST.txt
-$

표시된 대로 위의 출력은 별도의 one줄에 표시됩니다.filenamesspaces

다음에는 일치하는 항목을 찾는 데 사용합니다 grep.

일치하는 항목이 발견되면 전체 줄이 인쇄될 것으로 예상합니다.

그러나 대신 grep은 일치 항목을 포함하는 전체 줄이 아닌 일치 항목만 인쇄합니다. 아래를 참조하세요.

-$ ls | grep 'aNode'
aNode
-$

왜 이런 일이 발생합니까? grep 전체 줄이 인쇄되지 않는 이유는 무엇 입니까?

답변1

ls파이프 대신 터미널에 쓰는 경우 출력 형식이 다르며 콘텐츠가 다르게 표시됩니다. 파이프에 쓸 때 한 줄에 하나의 항목만 쓰므로 grep각 목록을 개별적으로 처리할 수 있습니다.

따라서 이렇게 하면 grep그냥 실행하여 화면에 인쇄할 때와는 다른 출력을 얻게 됩니다.lsls

grep이렇게 하면 같은 효과를 볼 수 있습니다

ls | cat

그러면 모든 항목이 한 줄에 하나씩 표시됩니다.

관련 정보