gpt4 book ai didi

bash - 将 grep/xargs 的结果放在单独的行上

转载 作者:行者123 更新时间:2023-12-03 04:02:48 24 4
gpt4 key购买 nike

我有一堆文件。我 grep 查找关键字并将包含该关键字的文件名传递给 xmllint,该 xmllint 执行 XPath 表达式以返回各个文件的一部分。

grep -irl "keyword" . | xargs xmllint --xpath '/HTML/BODY/P[2]' 

问题是有多个文件具有关键字,因此不同 xmllint 执行会产生多个结果。我想在不同的行上查看每个 xpath 的结果。但它们都合并在同一条线上。

有什么建议吗?

最佳答案

您可以在 xargs 中使用 -n1 来确保一次仅将文件传递给xargs`:

grep -irl "keyword" . | xargs -n 1 xmllint --xpath '/HTML/BODY/P[2]' 

如果您想更精细地控制 xargs 的输出,请使用带有进程替换的 while 循环:

while read -r file; do
echo "Processing $file =>"
xmllint --xpath '/HTML/BODY/P[2]' "$file
echo "==========================="
done < <(grep -irl "keyword" .)

关于bash - 将 grep/xargs 的结果放在单独的行上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42679428/

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