linux中删除换行符有几种方法,怎样做?
Admin 2022-12-02 群英技术资讯 1367 次浏览
删除文件里面的换行符,比如有一个文件a.txt:
1,2,3 4,5,6 1,2,3 4,5,6 1,2,3 4,5,6 1,2,3 4,5,6 1,2,3 4,5,6
1、使用vim删除换行符
vim输入命令:%s/\n//g
2、使用sed命令,例如 sed ':t;N;s/\n//;b t' a.txt
结果:1,2,34,5,61,2,34,5,61,2,34,5,61,2,34,5,61,2,34,5,6
解释一下:
:t 定义label "t" b t 转到label "t" 继续执行 N 先读入一行到sed的模板空间,加个换行符(\n),再向sed模板空间追加下一行(之后sed 对模板空间中的内容执行s/\n/,/替换,并显示替换后的内容)
3、使用td命令,例如:
cat a.txt | tr '\n' ' ' 1,2,3 4,5,6 1,2,3 4,5,6 1,2,3 4,5,6 1,2,3 4,5,6 1,2,3 4,5,6
注意tr最后那个参数是空格,否则会报错
Linux shell 中删除文件的所有换行符
需要做一个小功能,就是把一个文本文件中的所有换行符都去掉。一般肯定是想到使用sed来修改啦。但是我搜了一下,并没有找到sed要怎么输入\n——我知道^M对应的是\r,但是\n却失败了,在命令行中直接被切割掉。
原则上可以用\015这样的方式来指定的,但是我实际操作发现并不行,没有效果。所以最终我只能用直接输入命令来做了(还没验证过写成脚本是否能用)。
假设要替换的文件叫做in.txt,输出文件为out.txt:
sed 's/^M//g' file.txt > tmp.txt sed -i 's/\"/\\\"/g' tmp.txt rm -f out.txt; touch out.txt cat tmp.txt | xargs echo -n >> out.txt rm -f tmp.txt
五个步骤分别为:
将Windows格式的换行转换成UNIX格式,也就是删除所有的\r字符。其中^M并不是直接输入这两个字符,而是通过在shell里面按住 Ctrl+V,然后再敲 M 得到的
将所有的双引号转义,因为后面的echo需要使用
创建一个全空的输出文件
删除所有的\n字符并输出最终文件
删除中间文件
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
centos服务器配置jdk+tomcat8+HTTPS访问
linux修改日期和时间的方法:执行【date -s "年-月-日 时:分:秒"】命令即可成功修改日期和时间。如果要查看时间和日期,直接执行【date】命令即可。
在linux中,错误输出重定向指的是“把错误的输出信息写入到一个文件中去”;输出重定向是重新指定设备来代替显示器作为新的输出设备,重定向中通常是用文件或命令的执行结果来代替键盘作为新的输入设备,而新的输出设备一般指的就是文件。
linux查看用户组下所有用户的两种方法:1、使用cat和grep命令查看用户组配置文件“/etc/group”中的内容,并过滤输出指定用户组的信息即可,语法“cat /etc/group|grep 组名”,可以输出指定用户组中的用户列表。2、使用“sudo yum members”命令安装members工具包,执行“members 组名”命令列出指定用户组下所有的用户即可。
误删除文件我想是每个程序员都遇到过的问题, 有的时候可能造成影响非常小,但是有时候会造成无法挽回的后果,这种例子比比皆是,大家可以
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008