加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-15 19:02:50 所属栏目:安全 来源:网络整理
导读:我想知道下面两个命令之间的区别,我明白2)应该使用,但我想知道1)和2)中发生的确切顺序 假设文件名中包含200个字符 1)cat filename | grep regex 2)grep正则表达式文件名 在功能上(就输出而言),这两者是相同的.第一个实际上创建了一个单独的进程cat,它只是将
我想知道下面两个命令之间的区别,我明白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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读