【发布时间】:2014-01-10 05:49:04
【问题描述】:
我们正在接收一个文件,该文件由 \(newline) 分隔为行和由 \(tab) 字符分隔的列。
当文件的“字段”之一中存在手动换行符时,它会以带有两个反斜杠 (\\newline) 的特殊换行符形式出现。
要删除特殊标签\(tab),我们使用这个sed命令,它可以正常工作:
sed "s/$(printf '\\\\\t')/ /g"
换行符的相应命令,但是没有:
sed "s/$(printf '\\\\\n')/ /g"
它不会删除 \n,只会删除它之前的反斜杠。是否需要进行特殊处理才能删除 \(newline)?
澄清:普通换行符的格式如下:
\(newline)
而需要删除的特殊字符是
\\(newline)
【问题讨论】:
-
文件的行中是否有字符串“\\n”,或者反斜杠后确实有换行符(将单行数据分成两行)。
-
我相信它实际上是`\\(newline char)'
-
它显示为两行:第一行以 \ 结尾,然后是下一行。
-
您的符号不是很清楚 - 在实际换行符之前有多少个反斜杠?请发布
echo -e命令,该命令将生成您要删除的确切内容的测试输出。是echo -e '\\\n'还是echo -e '\\\\\n'还是echo -e '\\n'?