将grep输出管道到bash中的grep中

牛油果

我有一个文本文件,我想搜索具有search_string但没有exclude_string的行。

在终端中,以下给出了我想要的输出:

grep "search_string" | grep -v "\(exclude_string_A\|exclude_string_B\)"

我有一个bash脚本,用于扫描文本文件中的特定问题(通常使用grep和sed),我想在其中添加此搜索,但似乎无法使其正常工作。似乎第一个grep命令的输出没有被用作第二个的输入。

例如,对于包含以下内容的文件:

Gary: yes, that's what I said.  
Paul: well, I didn't hear you.  
Gary: okay, let's go.  

在bash脚本中,相关行是:

grep "Gary:" | grep -v "\(said\|told\)" $1

但是输出文件包含该部分的内容:

Paul: well, I didn't hear you.  
Gary: okay, let's go.

我希望这里缺少一些简单的东西!

伊尼安

您的想法是正确的,但您的输入文件/字符串参数放置在错误的位置。它应该写成

grep "Gary:" "$1" | grep -v "\(said\|told\)"

这意味着应用第一个grep表达式来匹配所有包含Gary或过滤包含单词said或的行told

经过尝试,由于是在管道上运行,因此两个grep过程都将开始,但是之后的部分将|处理输入$1,就好像它是文件一样,而不是从管道的标准输入中获取输入,并打印您看到的几行。

但是此时,您看到的是终端挂起,因为第一个终端grep仍在等待其标准输入流上的输入,但没有看到终端按下Ctrl-C发送信号SIGINT信号,最终杀死管道。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将systemd输出管道到文件中

来自分类Dev

将命令的输出管道传输到grep中,然后传输到另一个命令中

来自分类Dev

BASH将grep输出存储到变量或数组中

来自分类Dev

Bash:将函数中的变量前置到 grep 输出

来自分类Dev

如何从getopts在bash脚本中输出管道标准输出?

来自分类Dev

将 cat/grep/arguments 管道化到 bash 脚本中的变量中

来自分类Dev

Bash将grep存储到变量中

来自分类Dev

将awk输出管道到C程序

来自分类Dev

将编译器输出管道传递到head

来自分类Dev

将命令输出管道传输到Yad,并将输出记录到日志文件中

来自分类Dev

grep文件并将输出通过管道传递到sed并将sed输出存储在文件中

来自分类Dev

将每个bash输出管道传输到文件

来自分类Dev

将输出从命令管道grep重定向到文件

来自分类Dev

将输出从命令管道grep重定向到文件

来自分类Dev

我想将输出管道传输到bash中的多个文件

来自分类Dev

将PS输出管道传输到文本文件中

来自分类Dev

如何通过管道grep输出从python中的STDIN中读取

来自分类Dev

如何通过管道grep输出从python中的STDIN中读取

来自分类Dev

在bash中捕获多个并行的grep输出

来自分类Dev

尝试从bash输出中grep docker id

来自分类Dev

将grep输出存储在数组中

来自分类Dev

将Grep的输出存储在数组中

来自分类Dev

管道输出的连续行中的Grep字节偏移

来自分类Dev

在grep命令中输出

来自分类Dev

管道输出到grep

来自分类Dev

连续将Python脚本输出管道到另一个程序

来自分类Dev

将输入\输出管道从父进程重定向到cmd子进程C / C ++ WinApi

来自分类Dev

将md5sum输出管道到特定的文件行

来自分类Dev

如何将grep输出存储到循环内的变量中?

Related 相关文章

热门标签

归档