正则

  • 正则就是一串有规律的字符串,掌握好正则对于编写shell脚本有很大帮助,各种编程语言中都有正则,原理是一样的
  • 正则三剑客
    • grep
    • sed
    • awk

 grep

grep用法:grep [参数] '关键字' 文件名    #关键词也可以是正则表达式
grep [-cinvABC] 'word' filename
-c 统计包含'关键字'的行数。既使一行有多个关键字,也会按一行计算。
-i 筛选'关键字'时不区分大小写。
-n 筛选'关键字'时显示关键字所在的行号。
-v 反向选择,也就是'关键字'以外的内容。
-r 查询关键词时遍历路径下的子目录。
-An 这里的n是一个数字。作用是过滤出符合要求的行以及下面的“n”行。
-Bn 同上,区别为符合要求的行以及上面的“n”行。
-Cn 同上,区别为符合要求的行以及上下的各“n”行。
 grep -n 'root' /etc/passwd   #显示出现root的行数
 grep -nv 'nologin' /etc/passwd    #不显示出现root的行数
 grep '[0-9]'/etc/inittab       #显示 /etc/inittab文件下出现0-9关键词的行数
 grep -v '[0-9]'/etc/inittab    #显示 /etc/inittab文件下出现0-9关键词之外的行数
 grep -v '^#' /etc/inittab      #^符号表示开头,#符号表示结尾。此处为显示/etc/inittab内容中不带空行的内容
 grep -v '^#' /etc/inittab|grep -v  '^$'
 grep '^[^a-zA-Z]' test.txt
 grep 'r.o' test.txt
 grep 'oo*' test.txt
 grep '.*' test.txt
 grep 'o\{2\}' /etc/passwd
 egrep 'o{2}' /etc/passwd
 egrep 'o+' /etc/passwd
 egrep 'oo?' /etc/passwd
 egrep 'root|nologin' /etc/passwd
 egrep '(oo){2}' /etc/passwd

参数-E以及egrep

正则表达式

sed

sed 命令参数

sed动作范围参数

sed的查找替换功能

查找替换的内容里包含“/”分界符的处理方案

查找替换的其他使用方法

awk

04-18 15:30