sed命令基本介绍

本文详细介绍了如何使用SED命令进行文件内容的追加、修改和删除操作,包括具体语法和多个实践案例,适合初学者快速掌握SED的基本用法。

使用sed命令追加文件内容

总结:

    追加用法总结:
    
        1、a                    在匹配行后面追加        
        2、i                    在匹配行前面追加
        3、r                    将文件内容追加到匹配行后面
        4、w                    将匹配行写入指定文件
        
    追加用法示例详解:
    
        1、a    append
        
            (1)、passwd文件第10行后面追加"Add Line Behind"        
                sed -i '10a Add Line Begind' passwd
            (2)、passwd文件第10行到第20行,每一行后面都追加"Test Line Behind"
                sed -i '10,20a Test Line Behind' passwd
            (3)、passwd文件匹配到/bin/bash的行后面追加"Insert Line For /bin/bash Behind"
                sed -i '/\/bin\/bash/a Insert Line For /bin/bash Behind' passwd
        
        2、i
        
            (1)、passwd文件匹配到以yarn开头的行,在匹配航前面追加"Add Line Before"
                sed -i '/^yarn/i Add Line Before' passwd
            (2)、passwd文件每一行前面都追加"Insert Line Before Every Line"
                sed -i 'i Insert Line Before Every Line' passwd
            
        3、r
        
            (1)、将/etc/fstab文件的内容追加到passwd文件的第20行后面
                sed -i '20r /etc/fstab' passwd
            (2)、将/etc/inittab文件内容追加到passwd文件匹配/bin/bash行的后面
                sed -i '/\/bin\/bash/r /etc/inittab' passwd
            (3)、将/etc/vconsole.conf文件内容追加到passwd文件中特定行后面,匹配以ftp开头的行,到第18行的所有行
                sed -i '//,18r /etc/vconsole.conf' passwd
            
        4、w
        
            (1)、将passwd文件匹配到/bin/bash的行追加到/tmp/sed.txt文件中
                sed -i '/\/bin\/bash/w /tmp/sed.txt' passwd
            (2)、将passwd文件从第10行开始,到匹配到hdfs开头的所有行内容追加到/tmp/sed-1.txt
                sed -i '10,/^hdfs/w /tmp/sed-1.txt' passwd
使用sed命令修改文件内容


    总结:
    
        修改用法总结:
        
            1、1s/old/new/
            2、5,10s/old/new/
            3、10,+10s/old/new/
            4、/pattern1/s/old/new/
            5、/pattern1/,/pattern2/s/old/new/
            6、/pattern1/,20s/old/new/
            7、15,/pattern1/s/old/new/
            
        练习例子:
        
            1、修改/etc/passwd中第1行中第1个root为ROOT    
                sed -i '1s/root/ROOT/' passwd
            2、修改/etc/passwd中第5行到第10行中所有的/sbin/nologin为/bin/bash
                sed -i '5,10s/\/sbin\/nologin/\/bin\/bash/g' passwd
            3、修改/etc/passwd中匹配到/sbin/nologin的行,将匹配到行中的login改为大写的LOGIN
                sed -i '/\/sbin\/nologin/s/login/LOGIN/g' passwd
            4、修改/etc/passwd中从匹配到以root开头的行,到匹配到行中包含mail的所有行。修改内为将这些所有匹配到的行中的bin改为HADOOP
                sed -i '/^root/,/mail/s/bin/HADOOP/g' passwd
                sed -i '/^root/,/mail/s/\/sbin\/nologin/\/SBIN\/NOLOGIN/g' passwd 

            5、修改/etc/passwd中从匹配到以root开头的行,到第15行中的所有行,修改内容为将这些行中的nologin修改为SPARK
                sed -i '/^root/,15s/nologin/SPARK/g' passwd
            6、修改/etc/passwd中从第15行开始,到匹配到以yarn开头的所有行,修改内容为将这些行中的bin换位BIN
                sed -i '15,/^yarn/s/bin/BIN/g' passwd

使用sed命令删除文件内容

 

    总结:
        用法总结:
        
            1、1d
            2、5,10d
            3、10,+10d
            4、/pattern1/d
            5、/pattern1/,/pattern2/d
            6、/pattern1/,20d
            7、15,/pattern1/d
            
        练习例子:
        
            1、删除/etc/passwd中的第15行    
                sed -i '15d' /etc/passwd
            2、删除/etc/passwd中的第8行到第14行的所有内容    
                sed -i '8,14d' passwd
            3、删除/etc/passwd中的不能登录的用户(筛选条件:/sbin/nologin)    
                sed -i '/\/sbin\/nologin/d' passwd
            4、删除/etc/passwd中以mail开头的行,到以yarn开头的行的所有内容        
                sed -i '/^mail/,/^yarn/d' passwd
            5、删除/etc/passwd中第一个不能登录的用户,到第13行的所有内容
                sed -i '/\/sbin\/nologin/,13d' passwd
            6、删除/etc/passwd中第5行到以ftp开头的所有行的内容
                sed -i '5,/^ftp/d' passwd
            7、删除/etc/passwd中以yarn开头的行到最后行的所有内容    
                sed -i '/^yarn/,$d' passwd
                                                

        典型需求:
        
            1、删除配置文件中的所有注释行和空行
                sed -i '/[:blank:]*#/d;/^$/d' nginx.conf
            2、在配置文件中所有不以#开头的行前面添加*符号,注意:以#开头的行不添加
                sed -i 's/^[^#]/\*&/g' nginx.conf
            
            
                
            

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值