【问题标题】:How to convert a CRLF into a \n string [duplicate]如何将 CRLF 转换为 \n 字符串 [重复]
【发布时间】:2020-08-27 09:00:03
【问题描述】:
我正在寻找一种将 CRLF 转换为 \n 的方法。
示例:
我有什么:
Line 1
Line 2
我的期望:
Line 1\nLine 2
我有一个讨厌 CRLF LF 和行尾的应用程序?
希望在更糟糕的 shell 脚本或 java 应用程序中执行此操作。
谢谢
【问题讨论】:
-
-
@chubby.skelton : 你的系统上没有安装dos2unix 吗?你运行的是什么操作系统?
标签:
java
python
shell
newline
backslash
【解决方案1】:
这可以通过在 n 之前使用第二个斜杠来转义第一个斜杠来解决。
您的带有打印语句的代码如下所示:
System.out.println("Line 1\\nLine 2");
【解决方案2】:
Shell 可能会快得多,具体取决于文件的大小。
如果你只想改说一个“|”
cat file.txt | tr '\n' '|'
输出:
Line1|Line2|
如果您必须转换为字符串(而不是一个字符)
cat file.txt | tr '\n' '|' | sed s/\|/##/g
输出:
Line1##Line2##
【解决方案3】:
使用 GNU awk:
$ awk 'BEGIN{RS="\r?\n";ORS="\\n"}1' file
输出:
Line 1\nLine 2\n$
也适用于 mawk 和 Busybox awk。