zoukankan      html  css  js  c++  java
  • linux三剑客与正则案例

    awk:三剑客之老大,擅长取列,取行,计算

    参数:
    !:表示取反,排除

    NR:显示行号
    $0:表示显示一整行内容


    -F:指定分隔符或者多个分隔符

    例子:使用awk取出网卡中的ip
    [root@web02 oldboy]# ifconfig eth0
    eth0      Link encap:Ethernet  HWaddr 00:0C:29:1F:6D:B7  
              inet addr:10.0.0.3  Bcast:10.0.0.255  Mask:255.255.255.0
              inet6 addr: fe80::20c:29ff:fe1f:6db7/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:109302 errors:0 dropped:0 overruns:0 frame:0
              TX packets:90828 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000 
              RX bytes:75289221 (71.8 MiB)  TX bytes:36886895 (35.1 MiB)
    
    [root@web02 oldboy]# ifconfig eth0 |awk -F '[: ]+' 'NR==2 {print $4}'
    10.0.0.3
    [root@web02 oldboy]# 
    
    例子2:取出文件中的文件权限数字
    [root@web02 oldboy]# stat oldboy.txt 
      File: `oldboy.txt'
      Size: 246           Blocks: 8          IO Block: 4096   regular file
    Device: 802h/2050d    Inode: 396746      Links: 3
    Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
    Access: 2019-01-09 19:04:35.117568571 +0800
    Modify: 2019-01-09 19:04:29.682566423 +0800
    Change: 2019-01-09 19:04:29.685566229 +0800
    [root@web02 oldboy]# stat oldboy.txt |awk -F '[(/]' 'NR==4{print $2}'
    0644
    

    grep:过滤

    参数:
    -v:排除
    -A数字:显示过滤的内容及接下来的几行
    -n:显示行号

    egerp:支持高级的正则相当于gerp -E
    --color=auto:给过滤出来的内容加上颜色

    -o:表示grep正则的执行过程

    例子:使用egrep过滤出IP地焉

    sed:替换与修改文件内容

    参数:
    /需要删除的内容/d:表示删除

    -n:取消默认输出,一般与p配合使用
    -i:修改文件内容

    例子:使用sed取出网卡中的IP地址
    [root@web02 oldboy]# ifconfig eth0
    eth0      Link encap:Ethernet  HWaddr 00:0C:29:1F:6D:B7  
              inet addr:10.0.0.3  Bcast:10.0.0.255  Mask:255.255.255.0
              inet6 addr: fe80::20c:29ff:fe1f:6db7/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:110510 errors:0 dropped:0 overruns:0 frame:0
              TX packets:91567 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000 
              RX bytes:75392237 (71.8 MiB)  TX bytes:36965141 (35.2 MiB)
    
    [root@web02 oldboy]# ifconfig eth0|sed -nr '2s#.*dr:(.*)  Bc.*$#1#gp'
    10.0.0.3
    ##将inet替换成oldboy
    [root@web02 oldboy]# ifconfig eth0|sed -nr '2s#inet#oldboy#gp'
              oldboy addr:10.0.0.3  Bcast:10.0.0.255  Mask:255.255.255.0
    

    例子2:使用sed取出文件权限数字

    [root@web02 oldboy]# stat oldboy.txt 
      File: `oldboy.txt'
      Size: 246           Blocks: 8          IO Block: 4096   regular file
    Device: 802h/2050d    Inode: 396746      Links: 3
    Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
    Access: 2019-01-09 19:04:35.117568571 +0800
    Modify: 2019-01-09 19:04:29.682566423 +0800
    Change: 2019-01-09 19:04:29.685566229 +0800
    [root@web02 oldboy]# stat oldboy.txt |sed -nr '4p'
    Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
    [root@web02 oldboy]# stat oldboy.txt |sed -nr '4s#.*(([0-9]+)##gp'
    /-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
    [root@web02 oldboy]# stat oldboy.txt |sed -nr '4s#.*(([0-9]+).*$#1#gp'
    0644
    
  • 相关阅读:
    C# 扩展方法使用
    C# 程序集安装与卸载
    C#截取当前活动窗体的图片
    DateTime格式
    c# asp.net 多数组索引的解决方法
    关于DataSet中Relations的应用
    datalist 分页
    ASP.NET(C#) Repeater分页的实现
    asp.net 六大对象之Request、Response
    什么是DOM
  • 原文地址:https://www.cnblogs.com/yjiu1990/p/10272984.html
Copyright © 2011-2022 走看看