(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
问题分析:
在windows下使用notepad++写的脚本上传到Linux下,在使用vim编辑的时候我们发现在行末出现了^M。
^M的来历:
M字符的来历和作用:在DOS/Windows里,文本文件的换行符为\r\n,而在 nix系统里则为\n,所以DOS/Windows里编辑过的文本文件到了 nix里,每一行都多了个M。所以^M只是一个换行符号,没有实际的用处,我们可以将它保留,也可以将它删除
如何删除^M:
1、dos2unix filename
2、sed -i 's/^M//g' filename
3、cat filename |tr -d '/r' >filename
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)