【发布时间】:2014-05-12 03:19:52
【问题描述】:
我在让我的 SED 脚本正常工作时遇到了一些困难。它似乎只适用于第一次出现。我基本上是一个 UNIX 初学者——请多多包涵。
数据文件如下所示:
exec cics
end-exec.
exec cics
send map
end-exec.
exec cics
end-exec.
实际输出如下,似乎只有在第一次出现时才能正常工作:
exec cics end-exec.
exec cics
send map
end-exec.
exec cics
end-exec.
所需的输出应如下所示:
exec cics end-exec.
exec cics send map end-exec.
exec cics end-exec.
以“exec cics”开头并以“end-exec”结尾的所有内容都应位于同一行,并删除所有换行符。
SED脚本如下:
/exec cics/,/end-exec/{
:a
N
$!ba
s/\n//
}
我从这里得到了花括号内的代码:How can I replace a newline (\n) using sed?
我的初始脚本没有:a;N;$!ba。谁能看到我遗漏了什么或做错了什么?
【问题讨论】:
-
您应该注意,x-ref 的问题使用
s/\n/ /g而不是s/\n//。