我有一堆文件。我为一个关键字grep并将包含关键字的文件名传递给xmllint,该文件执行XPath表达式以返回各种文件的一部分。
grep -irl "keyword" . | xargs xmllint --xpath '/HTML/BODY/P[2]'
问题是,有几个文件带有关键字,因此对各种xmllint执行有几个结果。我想在不同的行上查看每个xpath的结果。但是它们都合并在同一行上。
有小费吗?
最佳答案
您可以在-n1
中使用xargs
来确保一次仅使用file is passed to
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/