linuxgrep命令1.作用
linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把
匹配的行打印出来。grep全称是globalregularexpressionprint,表示全局正则表达式版本,它的使用权限是所有用户。2.格式grep[options]3.主要参数[options]主要参数:-c:只输出匹配行的计数。-i:不区分大小写(只适用于单
字符)。-h:查询多文件时不显示文件名。-l:查询多文件时只输出包含匹配字符的文件名。-n:显示匹配行及行号。-s:不显示不存在或无匹配文本的错误信息。-v:显示不包含匹配文本的所有行。pattern正则表达式主要参数:\:忽略正则表达式中特殊字符的原有含义。^:匹配正则表达式的开始行。$:匹配正则表达式的结束行。\<:从匹配正则表达式的行开始。\>:到匹配正则表达式的行结束。[]:单个字符,如[a]即a符合要求。[-]:范围,如[a-z],即a、b、c一直到z都符合要求。。:所有的单个字符。*:有字符,长度可以为0。4.grep命令使用简单实例$grep‘test’d*显示所有以d开头的文件中包含test的行。
方法一:利用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',达到去除空行的效果。
方法四的缺陷:如果首行就出现空行的话则无法去除首行的空行
评论列表(0条)