我有一个由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符号表示的,还有哪些字符可以表示换行符呢?
如果在删除选项卡之前在文件上运行tr行,则会得到一个空输出。
谢谢。
发布于 2016-03-03 15:51:24
听起来你的新行是\r\n (Windows风格的)。一种选择是首先使用以下命令删除它们:
tr -s '\r\n' ' ' < file-s开关意味着输入中的每个字符序列只被一个空格替换。感谢glenn jackman指出这一点。
稍微猜测一下您的意图,您可能想使用类似的方法,用逗号替换所有空格(包括行间隔):
tr -s '[:space:]' ',' < file然后,您可以通过管道将其输送到sed,以便在需要的情况下删除后缀逗号。
https://stackoverflow.com/questions/35776570
复制相似问题