【发布时间】:2015-07-23 17:52:15
【问题描述】:
我正在尝试用 bash 编写一个小脚本。该脚本的目的是从 file1.txt 中提取搜索模式,并从 file2.txt 中打印匹配搜索的行号。我知道我想要的模式在 file1.txt 中的确切位置,我可以使用 sed 和 awk 轻松地将其拉出来,例如
sed -n 3p file1.txt | awk '{print $4}'
我遇到问题的部分是将该信息再次传递给 awk 以用作 file2.txt 中的搜索模式。大致如下:
awk '/search_pattern/{print NR}' file2.txt
通过将第一行的输出存储为变量,然后将该变量传递给第二行中的 awk,我能够让这段代码在两行代码中运行,
myVariable=`sed -n 3p file1.txt | awk '{print $4}'`
awk '/'"$myVariable"'/{print NR}' file2.txt
但这似乎“不雅”。我希望有一种方法可以在一行代码中使用文件重定向(或类似的东西?)。非常感谢任何帮助!
【问题讨论】:
-
请提供示例
file1.txt和file2.txt以及您期望的输出。
标签: awk