unix – grep Vs cat和grep之间的区别

前端之家收集整理的这篇文章主要介绍了unix – grep Vs cat和grep之间的区别前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想知道下面两个命令之间的区别,我明白2)应该使用,但我想知道1)和2)中发生的确切顺序
假设文件名中包含200个字符

1)cat filename | grep regex

2)grep正则表达式文件

功能上(就输出而言),这两者是相同的.第一个实际上创建了一个单独的进程cat,它只是将文件内容发送到标准输出,它显示在grep的标准输入上,因为shell已经用管道连接了两者.

从这个意义上讲,grep regex< filename也是等效的,但只需少一个进程. 当grep使用额外信息(文件名)时,您将开始看到差异在于变体,例如:

  1. grep -n regex filename1 filename2@H_403_13@
  2. 它与之间的区别:

  3. cat filename1 filename2 | grep -n regex@H_403_13@ 
  4.  

    是前者知道单个文件,而后者将其视为一个文件(没有名称).

  5.  

    前者可能会给你:

  6.   
  7.  
    filename1:7:line with regex in 10-line file
  8. filename2:2:another regex line@H_403_13@ 
  9.  

    后者更像是:

  10.   
  11.  
    7:line with regex in 10-line file
  12. 12:another regex line@H_403_13@ 
  13.  

    另一个可执行文件,如果它知道文件名是不同的,那就是wc,单词计数器程序:

  14.   
  15.  
    $cat qq.in
  16. 1
  17. 2
  18. 3
  19. $wc -l qq.in           # knows file so prints it
  20. 3 qq.in
  21. $cat qq.in | wc -l     # does not know file
  22. 3
  23. $wc -l <qq.in          # also does not know file
  24. 3@H_403_13@

猜你在找的Bash相关文章