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
그러면 모든 항목이 한 줄에 하나씩 표시됩니다.