使用sed或awk打印符合匹配模式的线条问题:我想直接在包含匹配模式的一行后面打印一行。我的版本sed将不会采用以下语法(它会破坏+1p)这似乎是一个简单的解决方案:sed -n '/ABC/,+1p' infile我想awk做多行处理会更好,但我不知道怎么做。
3 回答
缥缈止盈
TA贡献2041条经验 获得超4个赞
awk 'f{print;f=0} /regexp/{f=1}' file
awk 'c&&!--c; /regexp/{c=1}' file
awk '/regexp/{f=1}f' file
awk 'f;/regexp/{f=1}' file
awk 'c&&!--c;/regexp/{c=N}' file
awk 'c&&!--c{next}/regexp/{c=N}1' file
awk 'c&&c--;/regexp/{c=N}' file
awk 'c&&c--{next}/regexp/{c=N}1' file
awk '/regexp/{c=N}c&&c--' file
翻翻过去那场雪
TA贡献2065条经验 获得超13个赞
sed -n '/ABC/{n;p}' infile
-A NUM, Print NUM lines of trailing context after matching lines.
foo bar baz bash bongo
$ grep -A 1 "bar" file bar baz $ sed -n '/bar/{n;p}' file baz
跃然一笑
TA贡献1826条经验 获得超6个赞
sed -n '/pattern/,$p' # prints all lines after ( and including ) the pattern
sed -n '/pattern/,$p' | tail -n+2 # all lines after first occurrence of pattern
head -1
sed -n '/pattern/,$p' | tail -n+2 | head -1 # prints line after pattern
添加回答
举报
0/150
提交
取消