gpt4 book ai didi

unix - 使用 xargs 从文档中查找行

转载 作者:行者123 更新时间:2023-12-04 18:30:51 27 4
gpt4 key购买 nike

假设我有 queries.txt。

queries.txt:

cat
dog
123

现在我想使用它们是使用 grep 在 myDocument.txt 中查找行的查询。

cat queries.txt | xargs grep -f myDocument.txt

myDocument 有类似的行

cat
i have a dog
123
mouse

它应该返回前 3 行。但事实并非如此。相反,grep 尝试将它们作为文件名查找。我做错了什么?

最佳答案

在这里,您只需要:

grep -f queries.txt myDocument.txt

这会导致 grep 从文件 queries.txt 中读取正则表达式,然后将它们应用到 myDocument.txt

xargs 版本中,您正在有效地编写:

grep -f myDocument.txt cat dog 123

如果您绝对必须使用 xargs,那么您需要编写:

xargs -I % grep -e % myDocument.txt < queries.txt

这避免了 UUOC - cat 的无用使用 - 通过重定向来自 queries.txt 的标准输入来奖励。它使用 -I % 选项来指定替换文本在命令行中的位置。使用 -e 选项意味着如果模式是 --help,你不会遇到 (GNU) grep 的问题将其视为参数(并因此打印其帮助消息)。

关于unix - 使用 xargs 从文档中查找行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18668326/

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