警告:我之前在stackoverflow上看到过这类问题。我搜索了很多。遵循解决方案,但无法解决问题。
我有一个变量 $ NEW_FILE ,其值为 的什么(./位置/ file1的)] 当你回音$ NEW_FILE
我有一个文件test1.txt,其中包含:
你好,世界!
这不起作用
我不知道关于sed和awk的事情
现在我想搜索单词 - 工作 并在$ NEW_FILE中包含的后面添加一个新行 所以期望的输出是:
你好,世界!
这不起作用
什么(./位置/ file1的)]
我不知道关于sed和awk的事情
如何使用sed或awk在bash中实现此目标?
这是我试过的: awk'/ working / {print; print $ NEW_FILE; next} 1'test1.txt
这会产生输出:
你好,世界!
这不起作用
$ NEW_FILE
我不知道关于sed和awk的事情
有人可以帮我这个吗?
我认为我们还必须考虑NEW_FILE变量中的前向和后向斜杠。
答案 0 :(得分:2)
您的NEW_FILE
可能是bash变量,因此不是awk中的变量。所以,要么让bash进行扩展:
awk '/working/ { print; print "'$NEW_FILE'"; next}1' test1.txt
或从命令行传递/设置变量:
awk -v NEW_FILE="$NEW_FILE" '/working/ { print; print NEW_FILE; next}1' test1.txt