文本处理三剑客(三)--sed
sed流编辑器(行)
工作过程:sed命令一次只会读取文件的一行,并将取复制到pattern space中,如果匹配成功将进行编辑操作,并将结果标准输出;如果不能匹配将不做编辑操作,并将结果标准输出;
sed [OPTION]... {script-only-if-no-other-script} [input-file]...
script:地址定界+编辑命令 提明对文本内容做相应的操作
常用选项:
-n:不输出模式空间中的内容至屏幕
-e script,--expression=script: 多点编辑
-f /PATH/TO/SED_SCRIPT_FILE:每行一个编辑命令
-r:支持扩展正则表达式
-i:直接编辑原文件
注:建议操作前先备份原文件
地址定界
1)不给(空)地址:对全方进行处理
2)单地址
#:指定行
/PATTERN/:被模式所匹配到的每一行;
3)地址范围
#;#|#,+#|#,/PATTERN/|/PATTERN1/,/PATTERN2/
4)步进:~
1~2所有奇数行
2~2所有偶数行
编辑命令
d:删除
[root@Centos-7-24 ~]# sed '1,5d' /etc/fstab --删除第1-5行
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=04e0f120-4359-4461-a325-7bf21f07079a / xfs defaults 0 0
UUID=fc40b667-afdf-4d5a-8904-107c11201406 /boot xfs defaults 0 0
sed '1~2d' /etc/fstab 删除奇数行
p:显示模式空间中的内容
[root@Centos-7-24 ~]# sed '3p' /etc/fstab
#
# /etc/fstab
# /etc/fstab
# Created by anaconda on Fri Oct 2 14:55:18 2020
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=04e0f120-4359-4461-a325-7bf21f07079a / xfs defaults 0 0
UUID=fc40b667-afdf-4d5a-8904-107c11201406 /boot xfs defaults 0 0
#
/new line
# Created by anaconda on Fri Oct 2 14:55:18 2020
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=04e0f120-4359-4461-a325-7bf21f07079a / xfs defaults 0 0
UUID=fc40b667-afdf-4d5a-8904-107c11201406 /boot xfs defaults 0 0
#
# /etc/fstab
\S
Kernel \r on an \m
# Created by anaconda on Fri Oct 2 14:55:18 2020
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=04e0f120-4359-4461-a325-7bf21f07079a / xfs defaults 0 0
UUID=fc40b667-afdf-4d5a-8904-107c11201406 /boot xfs defaults 0 0
#
3
# /etc/fstab
4
# Created by anaconda on Fri Oct 2 14:55:18 2020
5
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=04e0f120-4359-4461-a325-7bf21f07079a / xfs defaults 0 0
UUID=fc40b667-afdf-4d5a-8904-107c11201406 /boot xfs defaults 0 0
UUID=04e0f120-4359-4461-a325-7bf21f07079a / xfs defaults 0 0
UUID=fc40b667-afdf-4d5a-8904-107c11201406 /boot xfs defaults 0 0
浙公网安备 33010602011771号