首页 > 代码库 > 【CentOS】正则表达式

【CentOS】正则表达式

1.grep  [-cinvABC]  ‘word‘  filename

  -c :打印符合要求的行数

  --color:显示颜色

  -i :忽略大小写(ignore)

  -n :在输出符合要求的行的同时连同行号一起输出(number)

  -v :打印不符合要求的行(取反)

  -A :后跟一个数字(有无空格都可以),例如 –A2则表示打印符合要求的行以及下面两行(after)

  -B :后跟一个数字,例如 –B2 则表示打印符合要求的行以及上面两行(before)

  -C :后跟一个数字,例如 –C2 则表示打印符合要求的行以及上下各两行 

  -E  :允许使用拓展正则表达式(extended regular  expression)

  -r  :遍历

 

  注意:"." 表示任意一个字符                       eg: grep -E ‘ro.t‘ 1.txt= egrep ‘ro.t‘ 1.txt,可以过滤出root

          ".*"表示零个或多个任意字符,           eg: grep -E ‘ro.*t‘ 1.txt= egrep ‘ro.*t‘ 1.txt,可以过滤出rot,rosadat,roo...t 

          "?"表示零个或一个跟在他前面的字符, eg: grep -E ‘ro?t‘ 1.txt = egrep ‘ro?t‘ 1.txt ,"o?"可以过滤出rt,rot        (这时你想到.*是什么意思了吗,手动滑稽)

          "+"表示一个或多个根子他前面的字符, eg: grep -E ‘ro+t‘ 1.txt = egrep ‘ro+t‘ 1.txt ,"o+"可以过滤rot,root,rooo...t

          也可以这样用:...(oo+) 1.txt  ;         ...(oo){1,2} 1.txt,{}内为数字,表示重复次数

          [^a]:[]括号内的^表示除了..也就是取反、非的意思

 

2.sed      (查找替换)

 查找:

 sed -n ‘np‘ 1.txt    列出第几行

      -n  :取消默认输出

      np  :n为第几行,列出多行可以‘1,10p‘,表示为列出1-10行,‘5-$‘列出第五行到行尾

  sed -n ‘/root/p‘ 1.txt   列出包含root的行

 多行为

  sed -n -e ‘/root/p‘  -e ‘np‘  1.txt  

      -e  :实现多个行为

 删除

  sed ‘1,5d‘  删除1-5行

 替换

  sed ‘s///g‘  替换(这个类似vim), eg: sed -r ‘5,$s#([^:]+)(:.*+:)([^:]+$)#\3\2\1#‘ 1.txt,表示为替换第五行到最后一行每一行的首尾单词

      -r  :允许使用拓展正则表达式(extended regular  expression)

 

  注意:由于\符号在涉及到路径时,很容易混淆,因此可以用#,@来替代

3.awk

【CentOS】正则表达式