我有这个 sed 表达式:
sed -ne '1,/DO-NOT-TOUCH-BEGIN/p' filename.txt
这将输出每一行,直到包含 DO-NOT-TOUCH-BEGIN 的行。
如何修改此命令,以便它在 DO-NOT-TOUCH-BEGIN 之后附加换行符?
示例:
hello
there
DO-NOT-TOUCH-BEGIN
not
this
DO-NOT-TOUCH-END
extra
lines
变成:
hello
there
DO-NOT-TOUCH-BEGIN
DO-NOT-TOUCH-BEGIN 后面有一个空行
我也希望另一方有类似的东西,它在比赛前添加一个换行符。
sed -ne '/DO-NOT-TOUCH-END/,$p' filename.txt
所以输出应该是:
DO-NOT-TOUCH-END
extra
lines
DO-NOT-TOUCH-END 之前有一个空行。
这可能对你有用(GNU sed):
sed '/DO-NOT-TOUCH-BEGIN/G' file
将保留空间附加到当前匹配的行,默认情况下为空,但会附加换行符。
操作前:
sed '/DO-NOT-TOUCH-END/H;//g' file
将当前行追加到保留空间,然后用保留空间的内容替换当前行。