欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

find、xargs、grep、压缩 - Linux 三重奏

最编程 2024-04-28 14:46:25
...

grep、awk、sed

grep

Global search REgular expression and Print out the line

作用:文本搜索工具,根据用户指定的”模式“对目标文件逐行进行匹配检查并打印出匹配的行。

模式:由正则表达式及文本字符所编写的过滤条件

格式:grep[options]pattern[file…]

其中pattern如果需要对模式进行转换,需要使用"",如果不需要进行转换,则使用‘’或者“”都可以。

option

--color=auto 对匹配到的行添加颜色,默认添加grep是别名
-v 取反
-i 不区分大小写
-n 查找的内容增加行号
-c 打印匹配到的行数
-o 只显示匹配到的文字

-q 静默模式,什么都不输出,可通过此命令判断是否查到关键字
常与echo $? 结合(echo $?:打印上一命令执行结果,有结果为0,无结果为非0。
grep -q 'user' passwd
echo $?
0

-A # after 向下显示#行
-B # before 向上显示#行
—C # context 上下分别显示#行

-e 或者
grep -e 'user' -e 'root' passwd

-E 扩展正则表达式
-F 不使用正则表达式
-r 递归
-w 匹配整个单词

正则表达式元字符

字符匹配

  • . 任意单个字符
  • [] 匹配指定范围内的任意单个字符 [0-9] [a-z] [A-Z]
  • [^] 取反
  • [:upper:] 大写字母
  • [:lower:] 小写字母
  • [:alnum:] 字母和数字
  • [:alpha:] 大小写字母
  • [:digit:] 数字
  • [:black:] 空白
  • [:punct:] 标点符号

匹配次数

  • * 表示任意次数
  • .* 任意字符任意次数
  • \? 表示0或者1次
  • \+ 至少一次
  • \{n\} 表示n次
  • \{m,n\} 最少m次,最多n次
  • \{n,\} 至少n次
  • \{,n\} 至多n次

位置锚定

  • ^ 开头
  • $ 结尾
  • ^$ 空行
grep -v "^#" /etc/ssh/sshd_config |grep -v "^$" 
显示不以#开头并且不是空行

分组

grep "\(c\|C\)at" a     其中的\全是转义字符

向后引用

grep "\(c\|C\)at.*\1" a 
  • \1 前面第一组(括号)出现的内容匹配完成之后再后面在出现一次
  • \2 第二组

扩展则表达式

grep -E "(c|C)at" a   
  • 与正则表达式的区别是不需要转义