2015-12-06 135 views
2

我讀this tutorialgrep *做什麼?

並沒有這一行:

grep da * 2 

實在是太神祕而筆者不分解的語法。

+0

來自tute的行是'grep da * 2> grep-errors.txt'這意味着在目錄的所有文件中查找da並將stderr寫入grep-errors.txt – amdixon

+0

,但是將* * 2 '做? –

回答

5

你應該拆分份數的命令就明白了:

  • grep
    全球定時打印:尋找包含字符串(可能正則表達式)結束了所有的輸入線(從流或inputfiles)表現出來。
  • da
    字符串查找(如亞當每天跳舞:三分命中率)
  • *
    的grep開始前,殼已經取代了通配符在當前目錄下的所有文件。當前目錄爲空時,shell會將該字符賦予grep,並且grep會嘗試查找名爲*的文件。
  • 2> grep-errors.txt
    grep不會看到這個,這是shell的一條指令,輸出流2必須被重定向到名爲grep-errors.txt的文件。
    流2?是的,1是正常的,2是錯誤消息。
+0

感謝您的密碼學知識。 –

4

請注意,在閱讀時不是* 2,而是* 2>,這是非常不同的東西。

2>是重定向標準錯誤流的重定向操作符,如>單獨重定向標準輸出。