linux - 如何替换 CSV 文件中的所有换行符,包括最后一个

标签 linux bash sed tr

我想用更长的字符串替换每行中的 '\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' 没有被替换。

但我的 CSV 文件如下所示: enter image description here

如何替换所有 \n 字符?

我发现了这个: How can I replace a newline (\n) using sed? , 但这个解决方案对我来说不好,因为它不处理最后一个 '\n' 字符。

最佳答案

使用sed:

$ cat > foo
this
that
$ sed 's/$/__/g' foo
this__
that__

$ sed 's/$/__/g' foo | hexdump -C
00000000  74 68 69 73 5f 5f 0a 74  68 61 74 5f 5f 0a        |this__.that__.|

0a 最后。

附言。注意缺少 useless cat .

关于linux - 如何替换 CSV 文件中的所有换行符,包括最后一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50532333/

相关文章:

php - 多个网站可以使用相同的主页和相同的数据库,但不需要更改url?

node.js - 更新部署到 Heroku 的 Meteor 应用程序的 Node 版本

linux - Bash 在两个时间戳内合并文件(日志文件)

regex - 计算包含模式的行数

linux - 将 gtkmm 与 Eclipse CDT 结合使用

linux - 创建新工作区时出错

linux - 如果调用另一个实例,则重新运行 bash 脚本

bash - 使用 GNU parallel 拆分命令行参数

bash - 计算在线 session 的总时间

linux - 如何更改ld.so中的默认路径