【发布时间】:2020-07-07 20:36:01
【问题描述】:
问:如何将第一次搜索的多个结果通过管道传输到第二个文件。
例如:
1) FILE1
system abc{
system ghi{
....
...
2) FILE2
define ABC_1_SUFFIX 0XF67
define ABC_2_SUFFIX 0XF34
define DEF_1_SUFFIX 0XF65
define DEF_2_SUFFIX 0XF11
define GHI_1_SUFFIX 0XF73
define GHI_2_SUFFIX 0XF82
grep -r "^system" file | awk '{print $2}'
grep -r "#define.*<result of 1st grep>" file2
任务:如何在第二个 grep 中传递第一个 grep 的结果(即 abc,def,ghi 对 grep -r "^system" )。我知道 pipe/xargs 但还不知道。
我搜索了相关主题,但没有解决。
1]GREP by result of awk
2]grep using grep results
提前致谢
【问题讨论】:
-
请在您的问题中添加示例输入(无描述、无图像、无链接)以及该示例输入所需的输出(无评论)。
-
您是否期望第一个 grep 的多行输出并且想要匹配每个?感觉就像你想要
xargs,但并不清楚你想要做什么。 -
@WilliamPursell,是的..所以第二个 grep 就像 grep'ing 遍历第一个结果的循环。我没有在文件的 grep 中使用 xargs,请告诉我如何使用它。感谢您的提示
-
抱歉,目前还不清楚你想要什么。从您显示的示例文件来看,您正在寻找的解决方案似乎是
cat FILE2。 -
@WilliamPursell 我从 FILE1 中删除了“system def{”。现在,结果应该是所有与 abc 和 ghi 相关的地址,省略 def。一个脚本可以工作,但要尝试单线破解。请告诉我。
标签: grep