美文网首页
linux命令grep、sed

linux命令grep、sed

作者: August________ | 来源:发表于2019-11-19 23:06 被阅读0次

    linux命令grep、sea

    grep:文本过滤工具

    功能说明:

    从文本文件或管道数据流中筛选匹配的行及数据。

    选项说明

    参数选项 解释说明
    -v 显示不匹配行
    -n 显示匹配行及行号
    -i 不区分大小写
    -c 值统计匹配的行数
    -E 使用扩展的egrep命名
    --color=auto 为匹配字符串添加颜色
    -w 只匹配过滤的单词
    -o 值输出匹配的内容

    例子

    [root@ecs-6197 test]# cat test
    grep
    sed
    awk
    [root@ecs-6197 test]# grep -v "grep" test
    sed
    awk
    
    [root@ecs-6197 test]# cat test.1
    grep
    sed
    awk
    grep
    [root@ecs-6197 test]# grep -n "grep"  test.1
    1:grep
    4:grep
    [root@ecs-6197 test]# grep -n "."  test.1
    1:grep
    2:sed
    3:awk
    4:grep
    
    [root@ecs-6197 test]# cat test.2
    ALEX
    abc
    [root@ecs-6197 test]# grep -i alex test.2
    ALEX
    
    
    • 同时过滤两个不同的字符串
    [root@ecs-6197 test]# cat test.1
    grep
    sed
    awk
    grep
    [root@ecs-6197 test]# grep -Ei "sed|awk"  test.1
    sed
    awk
    
    
    • 搜索匹配的用户
    [root@ecs-6197 test]# useradd nginx
    [root@ecs-6197 test]# useradd nginx1
    [root@ecs-6197 test]# useradd nginx2
    [root@ecs-6197 test]# grep -w nginx /etc/passwd
    nginx:x:1000:1000::/home/nginx:/bin/bash
    [root@ecs-6197 test]# grep  nginx /etc/passwd
    nginx:x:1000:1000::/home/nginx:/bin/bash
    nginx1:x:1001:1001::/home/nginx1:/bin/bash
    nginx2:x:1002:1002::/home/nginx2:/bin/bash
    [root@ecs-6197 test]# 
    
    

    sed:字符流编辑器

    功能说明:

    • 对文件实时快速的增删改查

    语法格式

    sed [选项] [内置命令字符]  [输出文件]
    

    选项说明

    选项说明 解释说明
    -n 取消默认的sed输出
    -i 直接修改文件,不输出到终端
    • 内置命令
    内置命令符 解释说明
    -a 追加文本
    -d 删除匹配文本
    -i 插入文本
    -p 打印匹配行内容
    s/regexp/replacement/ 用replacement替换regexp

    例子

    • 追加文本
    [root@ecs-6197 test]# cat persons.txt 
    101,abc,CEO
    102,bbb,CTO
    103,ccc,COO
    104,ddd,CFO
    105,ddd,CIO
    [root@ecs-6197 test]# sed '2a 106,fff,CSO' persons.txt   #在第二行追加
    101,abc,CEO
    102,bbb,CTO
    106,fff,CSO
    103,ccc,COO
    104,ddd,CFO
    
    • 插入文本
    [root@ecs-6197 test]# sed '2i 107,eee,CCO' persons.txt 
    101,abc,CEO
    107,eee,CCO
    102,bbb,CTO
    103,ccc,COO
    104,ddd,CFO
    105,ddd,CIO
    
    • 删除指定文本
    [root@ecs-6197 test]# sed '2d' persons.txt 
    101,abc,CEO
    103,ccc,COO
    104,ddd,CFO
    105,ddd,CIO
    
    
    • 替换文本内容
    [root@ecs-6197 test]# sed 's/abc/ppp/' persons.txt 
    101,ppp,CEO
    102,bbb,CTO
    103,ccc,COO
    104,ddd,CFO
    105,ddd,CIO
    

    相关文章

      网友评论

          本文标题:linux命令grep、sed

          本文链接:https://www.haomeiwen.com/subject/bzcnictx.html