我有两组文件 test.csv data.xml。
我正在尝试从 test.csv 中 grep 特定字段并在 data.xml 中搜索字符串。如果找到字符串,则打印 test.csv 文件中的相应行。
示例
搜索字符串是字段 3 服务器名称
测试.csv
111,xxx,serversugar,port90
222,yyy,servertorque,port190
333,aaa,serverastrix,port8080
422,yxy,servertorque,port290
data.xml
<group>
<hostname>servertorque</hostname>
<hostname>serverastrix</hostname></group>
预期输出
222,yyy,servertorque,port190
333,aaa,serverastrix,port8080
422,yxy,servertorque,port290
最佳答案
使用 GNU sed 和 grep 只需两步
sed '/>\w\+</!d;s/.*>\(\w\+\).*/\1/' data.xml>pattern.txt
grep -wf pattern.txt test.csv
..输出:
222,yyy,servertorque,port190 333,aaa,serverastrix,port8080 422,yxy,servertorque,port290
关于unix - AWK 根据搜索模式打印特定行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17036547/