在unix shell脚本中用空格替换换行符

Pos*_*ssa 1 unix shell replace space linefeed

我有一个包含一些记录的文本文件.每个记录分为4行(不总是4行),如下例所示:

----
row1
row2
row3
row4
----
row1
etc...
Run Code Online (Sandbox Code Playgroud)

每行以换行符(LF)结束.好的,我只需要在一行中获取记录,用空格替换LF字符,如下例所示:

---- row1 row2 row3 row4
---- row1 row2 ...etcetera
Run Code Online (Sandbox Code Playgroud)

对解决方案有任何帮助或建议吗?提前致谢.

ajr*_*eal 7

也许这可以工作?

cat FILE | xargs | sed "s/ ---- /\n---- /g"
Run Code Online (Sandbox Code Playgroud)


kur*_*umi 5

tr  "\n" " "  <file | awk '{gsub(/--+/,"\n&");print}'
Run Code Online (Sandbox Code Playgroud)

或全部在一个awk

awk '/--/{print s;printf $0;s=""}!/--/{s=s" "$0}END{print s}' file
Run Code Online (Sandbox Code Playgroud)