zoukankan      html  css  js  c++  java
  • grep sed awk

    grep命令用于查找文件里符合条件的字符串。

    [root@host tmpdata]# grep 'shenzhen' *.txt   
    hivelog.txt:tianyongtao 1       50      shenzhen
    hivelog.txt:wangwu      1       85      shenzhen
    hivelog.txt:zhangsan    1       20      shenzhen
    hivelog.txt:liuqin      0       56      shenzhen
    hivelog.txt:wangwu      0       47      shenzhen
    hivelog.txt:liuyang     1       32      shenzhen

    [root@host tmpdata]# grep 'shenzhen' hivelog.txt
    tianyongtao     1       50      shenzhen
    wangwu  1       85      shenzhen
    zhangsan        1       20      shenzhen
    liuqin  0       56      shenzhen
    wangwu  0       47      shenzhen
    liuyang 1       32      shenzhen

    [root@host tmpdata]# grep 'shenzhen' hivelog.txt hivelog1.txt
    hivelog.txt:tianyongtao 1       50      shenzhen
    hivelog.txt:wangwu      1       85      shenzhen
    hivelog.txt:zhangsan    1       20      shenzhen
    hivelog.txt:liuqin      0       56      shenzhen
    hivelog.txt:wangwu      0       47      shenzhen
    hivelog.txt:liuyang     1       32      shenzhen
    hivelog1.txt:tianyongtao        1       50      shenzhen
    hivelog1.txt:wangwu     1       85      shenzhen
    hivelog1.txt:zhangsan   1       20      shenzhen
    hivelog1.txt:liuqin     0       56      shenzhen
    hivelog1.txt:wangwu     0       47      shenzhen
    hivelog1.txt:liuyang    1       32      shenzhen

    [root@host tmpdata]# grep 'shenzhen' hivelog.txt hivelog1.txt |grep 'wangwu'
    hivelog.txt:wangwu      1       85      shenzhen
    hivelog.txt:wangwu      0       47      shenzhen
    hivelog1.txt:wangwu     1       85      shenzhen
    hivelog1.txt:wangwu     0       47      shenzhen

     sed命令是利用script来处理文本文件。

    sed可依照script的指令,来处理、编辑文本文件。

    Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。

    sed :实现数据的替换,删除,增加,选取等(以行为单位进行处理)

    [root@host tmpdata]# cat tian.txt
    name tian
    [root@host tmpdata]# sed -i "1i/sex 1" tian.txt   //第一行添加一条记录
    [root@host tmpdata]# cat tian.txt              
    /sex 1
    name tian
    [root@host tmpdata]# sed -i "1isex 1" tian.txt  //第一行添加一条记录
    [root@host tmpdata]# cat tian.txt             
    sex 1
    /sex 1
    name tian
     [root@host tmpdata]# sed -i "2ilevel 45" tian.txt     //第二行添加一条记录        
    [root@host tmpdata]# cat tian.txt
    sex 1
    level 45
    /sex 1
    name tian

    [root@host tmpdata]# echo "home henan">>tian.txt  //尾部添加一条记录
    [root@host tmpdata]# cat tian.txt
    sex 1
    level 45
    /sex 1
    name tian
    home henan

     sed并不会修改原文件中的内容,除非重定向新文件

    [root@host tmpdata]# cat tian.txt
    sex 1
    level 45
    /sex 1
    name tian
    home henan
    [root@host tmpdata]# sed '3d' tian.txt //删除第三行内容
    sex 1
    level 45
    name tian
    home henan

    [root@host tmpdata]# sed '3,5d' tian.txt//删除3-5行的记录
    sex 1
    level 45

    $表示最后,末尾

    [root@host tmpdata]# sed '$d' tian.txt  //删除最后一行
    sex 1
    level 45
    /sex 1
    name tian

    [root@host tmpdata]# sed -i '$i age 85' tian.txt //最后一行位置添加一条记录,原来的最后一行推后
    [root@host tmpdata]# cat tian.txt
    sex 1
    level 45
    /sex 1
    name tian
    age 85
    home henan

    sed替换字符串

     替换所有匹配关键字
    sed 's/原字符串/替换字符串/g'

    [root@host tmpdata]# cat tian.txt
    sex 1
    level 45
    /sex 1
    name tian
    age 85
    age 85
    home henan
    [root@host tmpdata]# sed -i 's/age/level/g' tian.txt //将age替换为level
    [root@host tmpdata]# cat tian.txt
    sex 1
    level 45
    /sex 1
    name tian
    level 85
    level 85
    home henan

     批量替换字符串

    sed -i "s/查找字段/替换字段/g" `grep 查找字段 -rl 路径`

    awk : 以字段为单位进行处理

    [root@host tmpdata]# cat hivelog.txt
    tianyongtao     1       50      shenzhen
    wangwu  1       85      shenzhen
    zhangsan        1       20      shenzhen
    liuqin  0       56      shenzhen
    wangwu  0       47      shenzhen
    liuyang 1       32      shenzhen
    [root@host tmpdata]# awk '{print $1,$3,$4}'  hivelog.txt  //打印第1,3,4列
    tianyongtao 50 shenzhen
    wangwu 85 shenzhen
    zhangsan 20 shenzhen
    liuqin 56 shenzhen
    wangwu 47 shenzhen
    liuyang 32 shenzhen
    [root@host tmpdata]# awk '{print $1,$4}'  hivelog.txt   //打印第1,4列
    tianyongtao shenzhen
    wangwu shenzhen
    zhangsan shenzhen
    liuqin shenzhen
    wangwu shenzhen
    liuyang shenzhen

    [root@host tmpdata]# awk '$3>50{print $1,$4}'  hivelog.txt  //先过滤(第三列大于50),然后打印第1,4列
    wangwu shenzhen
    liuqin shenzhen

    [root@host tmpdata]# awk '$3>50'  hivelog.txt          //过滤第三列大于50的行
    wangwu  1       85      shenzhen
    liuqin  0       56      shenzhen

    -------------

    [root@host tmpdata]# head -10 ips.txt     
    0.0.0.0 0.255.255.255 IANA
    1.0.0.0 1.0.0.0 美国
    1.0.0.1 1.0.0.1 美国
    1.0.0.2 1.0.0.255 美国
    1.0.1.0 1.0.3.255 福建省
    1.0.4.0 1.0.7.255 澳大利亚
    1.0.8.0 1.0.15.255 广东省
    1.0.16.0 1.0.31.255 日本
    1.0.32.0 1.0.63.255 广东省
    1.0.64.0 1.0.127.255 日本

    [root@host tmpdata]# tail -10 ips.txt  | awk '{print $3,$1,$2}'
    IANA机构 224.0.1.9 224.0.1.9
    IANA机构 224.0.1.10 224.0.1.10
    IANA机构 224.0.1.11 224.0.1.11
    IANA 224.0.1.12 224.251.255.255
    IANA保留地址 224.252.0.0 224.255.255.255
    IANA保留地址 225.0.0.0 239.255.255.255
    IANA保留地址 240.0.0.0 247.255.255.255
    IANA保留地址 248.0.0.0 248.255.255.255
    IANA保留地址 249.0.0.0 254.255.255.255
    IANA 255.0.0.0 255.255.254.255

    [root@host tmpdata]# tail -10 ips.txt  | awk '{print $3,$2}'  
    IANA机构 224.0.1.9
    IANA机构 224.0.1.10
    IANA机构 224.0.1.11
    IANA 224.251.255.255
    IANA保留地址 224.255.255.255
    IANA保留地址 239.255.255.255
    IANA保留地址 247.255.255.255
    IANA保留地址 248.255.255.255
    IANA保留地址 254.255.255.255
    IANA 255.255.254.255

  • 相关阅读:
    Mybatis如何插入空字段
    为什么要将action实例设置为多例
    hibernate dynamic-update="true"属性不起作用原因(转载)
    查找到匹配的进程并关闭 linux ps -ef
    Mac 下解决修改IntelliJ IDEA 由于修改配置之后无法启动问题
    再聊移动端页面的适配
    重学前端
    前端面试
    使用Flexible实现手淘H5页面的终端适配
    vue-cli3.0 使用px2rem 或 postcss-plugin-px2rem
  • 原文地址:https://www.cnblogs.com/playforever/p/9389119.html
Copyright © 2011-2022 走看看