LINUX删掉换行符

LINUX删掉换行符,第1张

去掉文件中的换行符

(1)tr命令的 *** 作是针对文件的 *** 作,它把整个文本当做 *** 作的对象,所以可以直接去除文件中的换行符

tr '\n' ' ' <file

(2)sed的 *** 作对象是行.而作为行分割符号的回车符,本身是不属于行的.所以sed中必须加上N命令,把下一行的内容添加到当前的pattern space中,这样实际上是把相邻的2行合并了.下一次仍然是先n,再p,再N,开始新的轮回:

cat file | sed 'Ns/\n/ /'

所以上面的语句是不能把文件内容合并为一行的,到底该怎么写,我暂时没有想到,呵呵

(3)直接用awk

awk '{printf("%s ",$0)}' file

(4)当然,用echo也是可以的:

while read linedo echo -n "$line"done <awk_help.txt, 这样,可以把awk_help.txt的内容合并为一行

sed -e "s#\[/r][/r][/n]#\[/r][/n]#g" file

Linux文件中出现^M字符一般是因为这个文件曾经是在Windows系统中编辑保存的,在Windows中编辑保存的文本文件的回车符是CR和LF两个符号,而Linux文件中的回车符只是一个LF符号,所以当Windows的文本文件放到Linux后,回车的位置会多出来一个^M的符号(Linux的文本文件在Windows上打开,在回车的位置上变成了一个方块并且回车不会换行)。

去除^M字符的方法是在Linux上用dos2UNIX命令对文件进行转换,将文本文件转换为适合Linux的格式(也有的Linux发行版没有安装dos2UNIX命令,需要用yum install unix2dos或apt-get install unix2dos命令来安装它,注意unix是小写)。dos2UNIX命令的用法是:

dos2UNIX -k -n 原来的文件名 转换后的新文件名

命令选项说明:

-k选项:表示保留文件原来的mtime时间格式,一般会加上这个参数

-n参数:保留旧文件并输出到一个新文件

转换后的新文件打开就没有^M字符了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8506730.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-17
下一篇 2023-04-17

发表评论

登录后才能评论

评论列表(0条)

保存