Files
了解 linux 中的 grep 和管道
我遇到了這篇文章,它解釋了我的問題。假設有一個名為
file.txt
“foo World”的文件。泰勒發布的答案解釋了很多,但我對如何
cat file.txt | grep "foo"
類似於
grep "foo" file.txt
我認為
grep
需要以下內容grep input argument // input is the string to search for (i.e) foo and // argument is the file path (./file.txt)
現在的輸出
cat file.txt
是文件的內容,foo World
這成為了輸入grep
?我對麼?如果是這樣,我認為grep
需要一個文件路徑作為字元串?
大多數命令可以處理輸入,這些輸入要麼是他們需要打開以進行輸入的文件,要麼是通過 STDIN 傳遞給命令的數據流。
當 的內容通過
cat file.txt
管道(|
如果內容沒有通過管道通過 STDOUT -> STDIN 傳遞,則命令可以通過打開通過命令行參數按名稱傳遞的文件來接收數據。
例子
將輸出發送到 STDOUT。
$ cat file 1 2 3 4 5
輸出
cat file
通過 STDOUTgrep
通過管道發送到 ’s STDIN。$ cat file | grep 5 5
將文件作為命令行參數處理。
$ grep 5 file 5
直接通過 STDIN 處理文件的內容。
$ grep 5 < <(cat file) 5
在這裡,我展示了
file
可以grep
通過上面的 STDIN 定向到的內容。