sed或awk打印单词之间的行
如何打印两行之间的所有行 “B节(” 到下一个以行开头的“节”字 A节( 。 ) B节( 。 ) C节( 。 )一般来说,如果您想在文件中的行之间“维护状态”,就像您在这里所做的那样,那么sed将不会完成这项工作。Awk可能是您在本例中可以使用的下一个最简单的工具 以下awk脚本将执行您想要的操作:sed或awk打印单词之间的行,sed,Sed,如何打印两行之间的所有行 “B节(” 到下一个以行开头的“节”字 A节( 。 ) B节( 。 ) C节( 。 )一般来说,如果您想在文件中的行之间“维护状态”,就像您在这里所做的那样,那么sed将不会完成这项工作。Awk可能是您在本例中可以使用的下一个最简单的工具 以下awk脚本将执行您想要的操作: /^section\ B\ \(/ {InSection=1; next;} /^\)/ {InSection=0; next;} // {if (InSec
/^section\ B\ \(/ {InSection=1; next;}
/^\)/ {InSection=0; next;}
// {if (InSection) print $0;}
对上述sed脚本的解释,分步骤进行:
!
从部分B开始时,移动到下一行
节B
文本行)
开头,我们将退出如果要打印从“section B”到“section C”的所有内容,包括这些行
sed -ne '/^section B/,/^section/p'
如果您不想打印这两行“截面”
如果要包括“B部分”和右括号(但不包括“C部分”)
还有一些其他可能的变体
sed -n '/section B/,/)/p' file
还是awk
awk '/section B/,/)/{print}' file
awk -vRS=")" '/section B/{print $0RT}' file
不知怎的,
/^B部分/!n代码>让我打印该行之前的内容。
sed -ne '/^section B/,/^)/p'
sed -n '/section B/,/)/p' file
awk '/section B/,/)/{print}' file
awk -vRS=")" '/section B/{print $0RT}' file