我的输出文件是如下删除线(包括该图案的),使用AWK或sed的
judi#cat file
---ABC---
word1
word2
word3
word4
word5
word6
---end_ABC---
---DEF---
line1
line2
line3
line4
---end_DEF---
judi#
我需要删除在图案ABC和end_ABC(包含图案之间的线,然后与新的内容替换,所述新的内容是在一个文件中的 文件的内容而变化,所以只需要使用图案
judi#file1
---ABC---
wordA1
wordA2
wordA3
---end_ABC---
judi#
期望的结果必须是
judi#
---ABC---
wordA1
wordA2
wordA3
---end_ABC---
---DEF---
line1
line2
line3
line4
---end_DEF---
judi#
我想下面的命令
sed '/ABC/,/end_ABC/{/ABC/!{/end_ABC/!d}}' file > file 2
但要下面提到的错误
sed: command garbled: /ABC/,/end_ABC/{/ABC/!{/end_ABC/!d}}
您的命令在GNU sed下适用于我。如果你使用的是BSD(OSX)sed,可以考虑在大括号之前加上一些分号:'''''>';}'。 – John1024
是的命令看起来不错(GNU sed),只有文件+2,该命令将删除范围内的所有行,除了第一个和最后一个 – josifoski
在未来,请学会搜索S.O.发布之前。您的标题'删除两个图案之间的线条'(图案上有's')会返回76个项目。祝你好运。 – shellter