• 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

  • 相关阅读:
    C#窗体和控件都可以收到键盘键盘消息
    C#中结构和类成员指针的内存分配
    C# 中的委托和事件
    C# 函数 传入 C++动态库中 做回调函数
    CommunityServer的登录页面
    Oracle数据库Clob字段的更新操作
    .net程序员面试题,基本上是基础概念题
    取得一段汉语的每个字的首字母
    查找CommunityServer论坛新帖提交页面的包含文件
    ASP.NET 2.0 的内部变化
  • 原文地址:https://www.cnblogs.com/playforever/p/9389119.html
Copyright © 2020-2023  润新知