Linux三剑客之sed

内容概要

  • 文本处理命令
  • Linux三剑客之sed

内容详细

image

文本处理命令

        1、sort命令
            用于将文件内容加以排序

            -n	:依照数值的大小排序
            -r	:以相反的顺序来排列
            -k	:以某列进行排序
            -t	:指定分隔符,默认是以空格为分隔符

            cat 1.txt | sort -n -r -k2 -t '|'


        2、uniq命令
            用于检查及删除文本文件中重复出现的行列,一般与 sort 命令结合使用

            -c	:在每列旁边显示该行重复出现的次数
            -d	:仅显示重复出现的行列
            -u	:仅显示出一次的行列



        3、cut命令
            cut命令用来显示行中的指定部分,删除文件中指定字段

            -d	:指定字段的分割符,默认的字段分割符为"TAB"
            -f	:显示指定字符的内容

        4、tr命令
            替换或删除命令

            -d	:删除字符


        5、wc命令
            统计,计算数字

            -c	:统计文件中的bytes数
            -l	:统计文件中的行数
            -w	:统计文件中的单词个数,默认以空白字符作为分隔符

            注:在Linux系统中,一段连续的数字或者字母组合为一个词

Linux三剑客之sed


        sed 是Linux中流媒体编辑器

        grep	:过滤文本
        sed		:修改文本
        awk		:处理文本


        1、sed 的格式
            sed [参数] '处理规则' [操作对象]

        2、参数
            -e	:允许多项编辑
            -n	:取消默认输出
            -i	:就地编辑
            -r	:支持拓展正则
            -f	:指定sed匹配规则脚本文件


        3、定位

            1.数字定位法
                指定行号
                sed '2d' 1.txt
                sed '2,3d' 1.txt

             2.正则定位法
                sed '/^a/d' 1.txt

             3.数字和正则定位法
                sed '2,/^a/d' 1.txt

             4.正则正则定位法
                sed '/^a/,/^b/d' 1.txt

        4、sed的编辑模式
            d	:删除
            p	:打印
            a	:在当前行添加一行或多行
                    sed '3axxx' 1.txt
            c	:用新文本修改(替换)当前行
                    sed '3cxxx' 1.txt
            i	:在当前行之前插入文本(单独使用时)
                    sed '3ixxx' 1.txt
            r	:将1.sh中的内容写入1.txt的第三行
                    sed '3r 1.sh' 1.txt
            w	:将指定行写入文件
                    sed '3w w.txt' 2.txt
            y	:将字符串转换成另一个字符串(每一行只替换一次)
                    sed 's/11/22/' 2.txt
            g	:全部执行
                    sed 's/11/22/g' 2.txt
            i	:忽略大小写(跟s模式一起使用时)
            &	:代表前面匹配到的内容

案例

        1、将nginx.conf中的注释行全部去掉

            [root@localhost ~]# sed '/^ *#/d' /etc/nginx/nginx.conf

        2、将nginx.conf中每一行之前增加注释

            [root@localhost ~]# sed 's/.*/# &/g' /etc/nginx/nginx.conf

            &	:代表前面匹配到的内容

        3、要求一键修改本机的ip

            sed -i 's/.99/.9/g' /etc/sysconfig/network-scripts/ifcfg-eth[01]

        4、将/etc/passwd中的root修改成ROOT

            sed -i 's/root/ROOT/g' /etc/passwd


image

posted @ 2021-12-21 19:26  风花雪月*  阅读(43)  评论(0编辑  收藏  举报