如何使用 awk 将具有多个单词的字符串分组? (打印 2 个图案之间的线条)

如何使用 awk 将具有多个单词的字符串分组? (打印 2 个图案之间的线条)

我有一个问题,我的字符串不是单个字符串;它是一个包含多个单词的字符串;其中使用 sed 效果很好;但不是 awk;

如何使用 awk 将所有字符串分组?我尝试用" "、 with { }、 with封装字符串( ),但没有任何效果。这是我的 sed 与 awk 的示例:

sed -n '/show system | inc Software/,/sh syst | i @@@@@/p' filename.txt > out_file.txt

该行与 sed 完美配合;字符串是"show system | inc Software""sh syst | inc @@@@@"

至于 awk 则不起作用。

awk '/show system | inc Software/,/sh syst | i @@@@@/' filename.txt > out_file.txt

输出文件不是我所期望的。我怎样才能使该字符串在该命令中工作?

答案1

如果您包含输入数据和预期输出数据,您的问题会更容易理解。

以下awk命令将打印行“show system | inc Software' 和 'sh syst | i @@@@@' 以及中间的每一行:

awk '/show system \| inc Software/,/sh syst \| i @@@@@/{n=0}' filename.txt > out_file.txt

编辑:

另外,看起来你的sed命令不起作用,(假设我已经理解你的问题)它应该是:

sed -n '/show system | inc Software/,/sh syst | i @@@@@/p' filename.txt > out_file.txt

相关内容