shell編程系列12--文本處理三劍客之sed利用sed修改文件內容

shell編程系列12--文本處理三劍客之sed利用sed修改文件內容

修改命令對照表

編輯命令
1s/old/new/                替換第1行內容old爲new
1,10s/old/new/                替換第1行到10行的內容old爲new
1,+5s/old/new/                替換1行到6行的內容old爲new
/pattern1/s/old/new/            替換匹配到pattern1的行內容old爲new
/pattern1/,/pattern2/s/old/new/        替換匹配到pattern1的行直到匹配到pattern2的全部行內容old爲new
/pattern1/,10s/old/new/            替換匹配到pattern1的行到10行的全部行內容old爲new
10,/pattern1/s/old/new/            替換第10行直到匹配到pattern1的全部行內容old爲new


修改用法總結:
    1、1s/old/new/
    25,10s/old/new/
    310,+10s/old/new/
    4、/pattern1/s/old/new/
    5、/pattern1/,/pattern2/s/old/new/
    6、/pattern1/,20s/old/new/
    715,/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
    5、修改/etc/passwd中從匹配到以root開頭的行,到第15行中的全部行,修改內容爲將這些行中的nologin爲SPARK
        sed -i '/^root/,15s/nologin/SPARK/g' passwd 
    6、修改/etc/passwd中從第15行開始,到匹配到以post開頭的全部行,修改這些行中的bin爲BIN
        sed -i '15,/^post/s/bin/BIN/g' passwd

# 刪除文本中的全部數字
[root@localhost shell]# cat file.txt 
Hadoop Spark Flink 3435
1002 Test string
[root@localhost shell]# sed -i 's/[0-9]*//g' file.txt 
[root@localhost shell]# cat file.txt 
Hadoop Spark Flink 
 Test string
相關文章
相關標籤/搜索