2015-12-06 86 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>是重定向标准错误流的重定向操作符,如>单独重定向标准输出。