1. 简介
sed是一种在线编辑器、行编辑器,一次处理一行内容,在处理时,把当前的行存储到临时缓冲区中,该缓冲区称为"模式空间"(pattern space),接着用sed命令处理缓冲区中的内容,处理完毕后,把缓冲区的内容送到标准输出;然后紧接着去处理下一行,重复完成相同的操作,直至文件末尾;sed处理的整个过程中,对象文件中的内容并没有改变,除非使用重定向来存储处理后的结果。sed主要用来自动编辑一个或多个文件,简化文件的反复操作过程。
流程如下图:
2. sed命令功能sed [OPTION]... {script-only-if-no-other-script} [input-file]...
-n:表示不输出模式空间中内容至屏幕
-e script1 -e script2 -e script3:多点编辑
-f /path/to/script_file:从指定的文件中读取脚本并运行
-i:直接修改源文件
-r:支持扩展正则表达式
sed -n ‘3p‘ /etc/fstab
sed -n ‘3,6p‘ /etc/fstab
sed -n ‘1~2p‘ /etc/fstab
sed -n ‘$p‘ /etc/fstab
sed ‘s/^[[:space:]]\+//g‘ /boot/grub2/grub.cfg
sed ‘s/^#[[:space:]]\+//g‘ /boot/grub2/grub.cfg
sed ‘1~2w /tmp/grub.cfg3‘ /tmp/grub.cfg
echo "/etc/sysconfig/network-scripts/" | sed -r ‘s@[^/]+/?$@@‘
echo "/etc/sysconfig/network-scripts/" | sed ‘s@^.*/\([^/]\+\)/\?$@\1@‘
原文:https://blog.51cto.com/14418331/2422615