Bash
為什麼 grep 不列印整行?
當我輸入
ls
命令時,我得到以下輸出。-$ ls aNode ANode bNode BNode cNode CNode DUMP file1 hello.txt TEST.txt -$
如圖所示,上面的輸出是由 分隔的
one
行。filenames``spaces
接下來當我使用
grep
查找匹配項時。我期待如果找到匹配項,則將列印整行。
但是,相反,grep 只列印匹配項,而不是包含匹配項的整行。請看下文。
-$ ls | grep 'aNode' aNode -$
為什麼會這樣?為什麼
grep
不列印整行?
ls
如果寫入終端而不是管道,則具有不同的輸出格式並以不同的方式顯示內容。當寫入管道時,它每行只寫入一個條目,因此grep
可以單獨處理每個列表。所以當你這樣做時,
grep
你得到的輸出與ls
你執行ls
並列印到螢幕時不同。
grep
如果你這樣做,你會看到同樣的影響ls | cat
它將顯示所有條目,每行一個。