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使用额外信息(文件名)时,您将开始看到差异在于变体,例如:

grep -n regex filename1 filename2

它与之间的区别:

cat filename1 filename2 | grep -n regex

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

前者可能会给你:

filename1:7:line with regex in 10-line file
filename2:2:another regex line

后者更像是:

7:line with regex in 10-line file
12:another regex line

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

$cat qq.in
1
2
3

$wc -l qq.in           # knows file so prints it
3 qq.in

$cat qq.in | wc -l     # does not know file
3

$wc -l <qq.in          # also does not know file
3
原文链接:https://www.f2er.com/bash/387149.html

猜你在找的Bash相关文章