linux去掉文件中的空行

linux去掉文件中的空行,第1张

方法一:利用grep

grep -v '^\s*$' test.txt

注:-v表示将匹配的结果进行反转,正则表达式匹配空行。(空行可包括空格符制表符等空白字符)

方法二:利用sed

sed '/^\s*$/d' test.txt

注:d代表删除该行

方法三:利用awk

awk NF test.txt

注:NF代表当前行的字段数,空行的话字段数为0,被awk解释为假,因此不进行输出。

以上三种方式均可处理包含空白字符(空格符,制表符等)的空行。

方法四:若空行均由’\n'造成,则还可以利用tr命令去除空行。《Linux就该这么学》

tr -s '\n' <test.txt

注:-s代表将多个连续的字符压缩成一个字符,这里是将多个‘\n'压缩成一个'\n',达到去除空行的效果。

方法四的缺陷:如果首行就出现空行的话则无法去除首行的空行

kwrite 选上你要删除开始为空格的那些行,之后 shift + tab 。

如果是 GNOME 环境,可以用 gedit 。

这两个好像都叫做“文本编辑器”。只不过基于的环境不同。

这个功能本来主要是方便写程序的。

先建脚本:clearspace.sh

给脚本添加执行权限 chmod +x clearspace.sh   

编辑脚本内容:

     

       touch tmpFile   # 建临时文件

      sed 's/\ //g' $1 >temFile  #sed s命令 将空格替换 重定向到临时文件

      cat temFile >$1  #覆盖原文件

      rm -f temFile   #删除临时文件

      echo 'OK,DONE!'

     

执行脚本 ./clearspace.sh souceFile

实例:

执行前:

查看原文件:cat source.txt

sfd as as da la as las j8

890asfd f22

2 23rf a 23rfa

asdf9293 22 sdf

234 23r4 sdk

, . '  ds

sadf wow

sa s  sd

执行

./clearspace.sh source.txt

OK,DONE!

执行之后查看结果:cat source.txt

sfdasasdalaaslasj8

890asfdf22

223rfa23rfa

asdf929322sdf

23423r4sdk

,.'ds

sadfwow

sassd


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

原文地址: https://outofmemory.cn/yw/5910135.html

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

发表评论

登录后才能评论

评论列表(0条)

保存