【发布时间】:2018-11-05 00:55:06
【问题描述】:
我想用更长的字符串替换每行中的'\n' 字符,例如:"___\n"。
当我尝试时:
$ cat /tmp/test.csv | sed ':a;N;$!ba;s/\n/____\n/g'
我得到以下输出
"00000";"29515470";"001";"001";"A6399000800";"";"";"-1";"142.72";"1.00";"1.00"____
"91930";"20029956";"001";"002";"A2128300018";"";"";"-1";"71.58";"1.00";"4.00"____
"91930";"20029962";"001";"003";"ZZ-OIL16";"";"";"-1";"14.48";"5.00";"3.00"____
"91930";"20029962";"001";"002";"A2661800009";"";"";"-1";"13.28";"1.00";"3.00"
最后一个 '\n' 没有被替换。
如何替换所有 \n 字符?
我发现了这个:
How can I replace a newline (\n) using sed?
,但这个解决方案对我不利,因为它不能处理最后一个 '\n' 字符。
【问题讨论】:
-
awk '{print $0"____"}' /tmp/test.csv怎么样 -
谢谢!这也是一个很好的解决方案。但我必须在这里使用 sed ......
-
Stack Overflow 不是代码编写服务。请出示您的代码。由于 Stack Overflow 向您隐藏了关闭原因:寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定问题或错误以及在问题本身。没有明确问题陈述的问题对其他读者没有用处。请参阅:How to create a Minimal, Complete, and Verifiable example。