Bash 换行符不是'\n';
我有一个由Matlab创建的文本文件(我没有源代码),格式如下:Bash 换行符不是'\n';,bash,shell,scripting,line-breaks,Bash,Shell,Scripting,Line Breaks,我有一个由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 tr'\n'
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
tr'\n'
它只给了我最后一行,但当我手动编辑文本文件时,将指针放在行尾,然后按“del”和“enter”并重新运行代码,效果很好。
因此,文本文件中的换行符可能没有用符号\n表示,还有哪些字符可以表示换行符
另外,如果在删除选项卡之前在文件上运行tr行,则会得到一个空输出
谢谢。听起来你的新行是
\r\n
(Windows风格的)。一个选项是首先使用以下命令删除它们:
tr -s '\r\n' ' ' < file
然后,如果需要,您可以通过管道将其传输到
sed
,以删除后面的逗号。MATLAB可能使用Windows样式的换行符。请尝试“\r\n”您能否澄清所需的输出?d
和e
之间是否应该有逗号?
tr -s '[:space:]' ',' < file