linux中sed的复习

2019-06-17  本文已影响0人  Eren_Jaeger

sed命令格式:
sed [参数] '动作' 文件名

参数:
-n 打印具体的某一行时需要配合动作' p '使用
-i 直接修改文件内容,危险操作,三思
-e 进行多个动作处理时需要用到

动作:(动作参数前可直接跟行号)
' p ' 打印某一行,如果不填写行号,默认打印所有行
' d ' 删除某一行,比如:2d就是删除第二行
' c ' 改变某一行,比如:'2c Python',代表把第二行的内容变为“ Python ”
' i ' 在某一行前插入,比如:'2i Python',在第二行前插入内容“ Python ”
' a ' 在某一行后追加,比如:'2a Python',在第二行后追加内容“ Python ”
' s ' 在某一行进行字符串替换,如果不填写行号,默认对文中所有满足条件的字符串进行替换

示例1:
打印文件中第二行内容,从下文中可以看到-n参数和p动作一起使用

[root@centos-linux-02 opt]# cat 2.txt
     1  root:x:0:0:root:/root:/bin/bash
     2  bin:x:1:1:bin:/bin:/sbin/nologin
     3  daemon:x:2:2:daemon:/sbin:/sbin/nologin
     4  adm:x:3:4:adm:/var/adm:/sbin/nologin
     5  lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
[root@centos-linux-02 opt]# 
[root@centos-linux-02 opt]# 
[root@centos-linux-02 opt]# 
[root@centos-linux-02 opt]# 
[root@centos-linux-02 opt]# sed 2p 2.txt 
     1  root:x:0:0:root:/root:/bin/bash
     2  bin:x:1:1:bin:/bin:/sbin/nologin
     2  bin:x:1:1:bin:/bin:/sbin/nologin
     3  daemon:x:2:2:daemon:/sbin:/sbin/nologin
     4  adm:x:3:4:adm:/var/adm:/sbin/nologin
     5  lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
[root@centos-linux-02 opt]# 
[root@centos-linux-02 opt]# 
[root@centos-linux-02 opt]# 
[root@centos-linux-02 opt]# sed -n 2p 2.txt 
     2  bin:x:1:1:bin:/bin:/sbin/nologin

示例2:
删除第2行与第3行的内容

[root@centos-linux-02 opt]# sed 2,3d 2.txt 
     1  root:x:0:0:root:/root:/bin/bash
     4  adm:x:3:4:adm:/var/adm:/sbin/nologin
     5  lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

示例3:
在第2行后追加一行“ Python ”内容

[root@centos-linux-02 opt]# 
[root@centos-linux-02 opt]# sed '2a Python' 2.txt
     1  root:x:0:0:root:/root:/bin/bash
     2  bin:x:1:1:bin:/bin:/sbin/nologin
Python
     3  daemon:x:2:2:daemon:/sbin:/sbin/nologin
     4  adm:x:3:4:adm:/var/adm:/sbin/nologin
     5  lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

示例4:
在第2行前插入一行内容“ Python ”

[root@centos-linux-02 opt]# 
[root@centos-linux-02 opt]# sed '2i Python' 2.txt
     1  root:x:0:0:root:/root:/bin/bash
Python
     2  bin:x:1:1:bin:/bin:/sbin/nologin
     3  daemon:x:2:2:daemon:/sbin:/sbin/nologin
     4  adm:x:3:4:adm:/var/adm:/sbin/nologin
     5  lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

示例5:
把第2行中的内容替换为“ Python ”

[root@centos-linux-02 opt]# 
[root@centos-linux-02 opt]# sed '2c Python' 2.txt
     1  root:x:0:0:root:/root:/bin/bash
Python
     3  daemon:x:2:2:daemon:/sbin:/sbin/nologin
     4  adm:x:3:4:adm:/var/adm:/sbin/nologin
     5  lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

示例6:
把第2行中的字符串“1”替换为字符串“999”

[root@centos-linux-02 opt]# 
[root@centos-linux-02 opt]# sed '2s/1/999/g' 2.txt
     1  root:x:0:0:root:/root:/bin/bash
     2  bin:x:999:999:bin:/bin:/sbin/nologin
     3  daemon:x:2:2:daemon:/sbin:/sbin/nologin
     4  adm:x:3:4:adm:/var/adm:/sbin/nologin
     5  lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

示例7:
把第2行中的字符串“2”替换成“999”,把第2行中的“1”也替换成“999”

[root@centos-linux-02 opt]# 
[root@centos-linux-02 opt]# sed -e '2s/2/999/g;2s/1/999/g' 2.txt 
     1  root:x:0:0:root:/root:/bin/bash
     999    bin:x:999:999:bin:/bin:/sbin/nologin
     3  daemon:x:2:2:daemon:/sbin:/sbin/nologin
     4  adm:x:3:4:adm:/var/adm:/sbin/nologin
     5  lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
上一篇 下一篇

猜你喜欢

热点阅读