正则表达式--三剑客简单应用

1、正则表达式:

  简单的说,正则表达式就是一套处理字符串的规则和方法,以行为单位对字符串进行处理,通过特殊的符号的辅助,我们可以快速的过滤,替换某些特定的字符串。

  正则表达式可以快速的过滤出我们需要的内容。配合三剑客使用。

2、正则表达式实际就是一些特殊字符,赋予了他特定的含义。

(1)^word  搜索以word开头的

(2)word$  搜索以word结尾的

(3).      代表且只能代表任意一个字符

     .   具有的含义,代表当前目录、隐藏文件的标识、使一个配置文件生效。

(4)      转义

(5)*      表示重复0个或多个前面的一个字符。

(6).*     匹配所有字符(任意字符多个)

     ^.*  以任意字符开头的

(7)[]      括号里的内容都可以匹配

(8)[^word]  匹配不包含 ^后任意字符的内容

(9){n,m}   重复 n 到 m 次,前一个重复的字符。如果用 egrep 可以去掉斜线。

    {,m}   重复至多 m 次,前一个重复的字符。如果用 egrep 可以去掉斜线。

    {n,}    重复至少 n 次,前一个重复的字符。如果用 egrep 可以去掉斜线。

     {n}    重复 n 次,前一个重复的字符。如果用 egrep 可以去掉斜线。

  需要对{}进行转义,所以在每个大括号前面加上

3、举例说明:

  

 (1)过滤 M 开头的

  

 (2)不区分大小写输出。  -i

  

(3)过滤以 m 结尾的,$ 放在后面。

  

(4)将带 . 的文件进行过滤输出并加行号显示。 -n  显示行号; . 匹配任意一个字符,需要用 进行转义。

  

 (5)过滤“49000448”号码,使用 * 进行0次或多次匹配。

  

  * 将前面的0匹配了0次或多次。

(6)使用 [] 过滤。

  

   [] 里的内容都可以匹配,匹配 l 或者 o,匹配到的是 blog 或 boog。

 

(7)匹配不带有 oldboy 任意一个字符的行;括号里的任意一个字符都匹配。

  

 

 

 

  

 

  

 (8)使用分组的情况过滤 qq 号码;

  

  对前面的 0 匹配 2-3 次。

       对前面的 0 匹配至多 5 次。0 - 5 次

  

    对前面的 0 匹配至少 3 次。

  

======================================================

扩展的正则表达式:  egrep  或  grep  -E

  (1)+  重复一个或一个以上前面的内容

   

   (2)?  0个或一个前面的字符

    

     匹配前面的字符 0 次或一次。

   (3)|  用或的方式查找多个符合的字符串

    

       查找文件下为有 3306 或 1521 的文件

   (4)()  找出 “用户组” 字符串

    

     查找带 lo 组或者 oo 组的内容

======================================================

 4、awk 取IP地址:

  

   grep 过滤出地址存在的行,用 awk 指定分隔符取 IP 地址。

  awk 多个分隔符取 IP 地址,awk 多分隔符需要将分隔符用()括起来。

  

   使用 = 和 > 作为分隔符,中间的内容就是要取的。

  (1)取出文件的权限。

  

   使用 awk 指定多分隔符的方法,将内容前后的分隔符指明。

5、sed 取IP地址:

  

   使用 sed 将 IP 地址前后的内容替换成空,以。。开头,以。。结尾需要加上标识符 ^ $.

  

   在前两个 # 号中写入的条件是:以任意字符开头到 inet  结尾,中间括号里的内容代表的是 IP 地址,后面加上   netmask 开头任意字符结尾。后两个 # 号中的内容 1 代表的是输出第一个小括号里的内容,小括号表示分组,即输出前面括号里的内容,结尾加上 p 表示打印输出。

  需要用反斜线对小括号进行转义。

  

   前面小括号里表示任意字符,中间用空格分隔,后面接上任意字符,因为 a.txt 文件中只有一个空格,1 表示输出第一个小括号中的内容, 2 表示输出第二个小括号中的内容。如果只输出第一个小括号中的内容也可以。

  

   (1)sed 取文件的权限:

  

  以任意字符开头到 ( ,分组内的内容表示任意字符,即要取得内容,后面跟上要取内容后面跟上剩下的部分,1 取第一个分组的内容,p 打印输出。

======================================================

6、stat

stat -c 加参数可以查到文件权限的信息

%a  取八进制的权限

%A  人类可读的权限

  

   

  

原文地址:https://www.cnblogs.com/wqs-Time/p/11586804.html