视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
shell去掉文件中空行(空白行)的方法详解
2020-11-27 14:27:04 责编:小采
文档


本文详细介绍了使用shell去除文件中的空行的方法,学习下sed、awk、shell文件检测的方法,有需要的朋友可以作个参考。

本节内容:
shell去掉文件中空行

1,shell 去掉文件中的空行

cat filename | sed -e '/^$/d' > filename

2,保留最新的9个文件,其它的文件删除的命令语句

ls -t | awk '{if(NR>9){print $0}}' |xargs rm -f

附,shell中的特殊变量

$$
Shell本身的PID(ProcessID)
$!
Shell最后运行的后台Process的PID
$?
最后运行的命令的结束代码(返回值)
$-
使用Set命令设定的Flag一览
$*
所有参数列表。如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。
$@
所有参数列表。如"$@"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。
$#
添加到Shell的参数个数
$0
Shell本身的文件名
$1~$n
添加到Shell的各参数值。$1是第1参数、$2是第2参数…
判断 test
test -f 是否参在并是文件
-d 是否参在并是目录
-e 文件是否存在

man test

判断7种文件类型

test -f $1 && cat $1普通文件
test -d $1 && ls -ld $1目录
test -L $1 && ls -ld $1连接文件
test -p $1 && ls -ld $1管道文件
test -S $1 && ls -ld $1套接字
test -b $1 && ls -ld $1块设备
test -c $1 && ls -ld $1字符设备

下面举几个例子吧,供大家学习参考。

1,比较数字大小

#!/bin/bash 
test $1 -gt $2 && echo $1 
test $1 -lt $2 && echo $2 
test $1 -eq $2 && echo $1=$2

2,判断字符串

#!/bin/bash 
test $1 != $2 && echo 不相等 
test $1 = $2 && echo $1=$2

3,组合判断
1)、

#!/bin/bash 
test $1 -gt 5 -a $1 -lt 10 && echo $1 
if 
#!/bin/bash 
if test $1 -gt 5(或if [ $1 -gt 5 ]注意空格) 
then 
 echo $1 
fi

2)、

#!/bin/bash 
ping -c 1 -W 1 192.168.0.$1 &>/dev/null (-c 1表示ping一次,-W目标主机不可达超时为1秒) 
if [ $? -eq 0 ] 
then 
echo link OK 
esle
echo link no 
fi

SHELL 删除文件中的空行或者空白行二:

今天发现有个文件中空行太多了 ,打算删除其中的空行。

于是使用sed, 查了下命令,这么写:

sed '/^$/d' file1

发现仍然输出内容仍然有一大堆空行,真是莫名其妙。

于是:sed '/^$/p' file1 发现输出的空行很少,而实际上是很多空行的呀。

于是使用 cat -A file1

才发现,原来很多行里出现空格字符,导致正则并不识别它是空行

于是修改为: sed '/^ *$/d' file1 这下就OK啦

另外要注意在windows 下换行符是^M$

而在 LINUX下是 $,如果是WINDOWS下的文件的话需要转换一下,使用doc2unix好像是这个工具吧。

Linux shell 删除文件空行三:

最近要查看的日志文件提取后有很多空行,不利于以前的文件可以进行比较了,为了向下兼容,只能取得时候把空行删除掉。自己google了一下,用了grep方法,效率还是挺快的,25000+行中73行空行,瞬间搞定,应该可以接手。
方法一:(我就是用的这个)
grep -v "^$" file 去除匹配的空行
另外在排查找错的时候也利用grep 查看那几行是空行,从而从原来的日志文件查看那几行为什么没有该信息,
加参数 -n grep -n "^$" file 即可找到空行再去原日志文件查看信息。


方法二:用tr命令
cat 文件名 |tr -s ‘ '

方法三:用sed命令
cat 文件名 |sed ‘/^$/d'

方法四:用awk命令
cat 文件名 |awk ‘{if($0!=”")print}'
cat 文件名 |awk ‘{if(length !=0) print $0}'

更多shell去掉文件中空行(空白行)的方法详解相关文章请关注PHP中文网!

下载本文
显示全文
专题