首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Newline不是'\n‘

Newline不是'\n‘
EN

Stack Overflow用户
提问于 2016-03-03 15:41:49
回答 1查看 55关注 0票数 0

我有一个由Matlab创建的文本文件(我没有源代码),它的形式如下:

代码语言:javascript
复制
a   b   c   d

e   f   g   h

我用过

代码语言:javascript
复制
sed -i '' $'s/\t/\/g' filename

若要用逗号替换所有制表符并最终得到如下所示的文件:

代码语言:javascript
复制
a,b,c,d
e,f,g,h

然后,我尝试用

代码语言:javascript
复制
tr '\n' ' ' < filename

它只给出了最后一行,但是当我手动编辑文本文件时,将指针放在行的末尾,然后按下"del“和"enter”,然后重新运行代码,它工作得很好。那么,文本文件中的换行符可能不是用\n符号表示的,还有哪些字符可以表示换行符呢?

如果在删除选项卡之前在文件上运行tr行,则会得到一个空输出。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-03 15:51:24

听起来你的新行是\r\n (Windows风格的)。一种选择是首先使用以下命令删除它们:

代码语言:javascript
复制
tr -s '\r\n' ' ' < file

-s开关意味着输入中的每个字符序列只被一个空格替换。感谢glenn jackman指出这一点。

稍微猜测一下您的意图,您可能想使用类似的方法,用逗号替换所有空格(包括行间隔):

代码语言:javascript
复制
tr -s '[:space:]' ',' < file

然后,您可以通过管道将其输送到sed,以便在需要的情况下删除后缀逗号。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35776570

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档