gpt4 book ai didi

unix - grep与cat和grep之间的区别

转载 作者:行者123 更新时间:2023-12-03 20:18:48 28 4
gpt4 key购买 nike

我想知道以下2个命令之间的区别,我知道应使用2),但我想知道1)和2)中发生的确切顺序
假设文件名中包含200个字符

1)猫文件名| grep正则表达式

2)grep regex文件名

最佳答案

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

从这个意义上讲,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

关于unix - grep与cat和grep之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13507889/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com