我有一个由Matlab创建的文本文件(我没有源代码),其形式为:
a b c d
e f g h
我用过
sed -i '' $'s/\t/\/g' filename
用逗号替换所有选项卡,最后得到一个如下所示的文件:
a,b,c,d
e,f,g,h
然后,我尝试使用
删除所有换行符tr '\n' ' ' < filename
它只给了我最后一行,但是当我手动编辑文本文件时,将指针放在行尾,然后按“del”和“enter”并重新运行代码就可以了。 因此,文本文件中的换行符可能没有用\ n来表示,还有哪些其他字符用于表示换行符?
P.S如果我在删除标签之前在文件上运行tr行,我会得到一个空输出。
谢谢。
答案 0 :(得分:0)
听起来你的换行符是\r\n
(Windows风格的换行符)。一种选择是首先使用此命令删除它们:
tr -s '\r\n' ' ' < file
-s
开关表示输入中存在的每个字符序列仅由单个空格替换。感谢glenn jackman指出这一点。
稍微猜测你的意图,你可能想要使用这样的东西,用逗号替换所有空格,包括换行符:
tr -s '[:space:]' ',' < file
然后,您可以将此管道传输到sed
以删除尾随的逗号(如果需要)。