sed:编辑器
sed:Stream EDitor,行编辑器
用法:
sed [opthon]... ‘script’ inputfile..
scritp:‘地址命令’
常用选项:
-n:不输出模式中的内容至屏幕;默认输出;
-e:多点编辑功能;
-f /PATH/TO/SCRIPT_FILE:从指定文件中读取编辑脚本;
-r:使用扩展正则表达式,默认基本正则表达式
-i:原处编辑;相当于直接编辑
地址定界:
1:不给地址;对全文进行处理;
2:单地址;
#:指定的行
/pattern/:被此处模式所能够匹配到的每一行;
3:地址范围;
#,#
#,*#
/pat1/,/pat2/
编辑命令:
d:删除
~]# sed '/^UUID/d' /etc/fstab ;删除uuid开头的行
~]# sed '/^#/d' /etc/fstab ;删除空行;
~]# sed '1,5d' /etc/fstab ;删除1-5行的文件
p:打印显示模式空间中的内容至屏幕上;结合-n使用
~]# sed -n '/^UUID/p' /etc/fstab
a \text:在行后面追加文本,支持使用\n实现多行追加;
~]# sed '/^UUID/a \# hello sed' /etc/fstab
i \text:在行钱面插入文本,支持使用\n实现多行插入;
~]# sed '/^UUID/i \# hello sed' /etc/fstab
c \text:替换行为单行和多行文本;
sed '/^UUID/c \# hello sed' /etc/fstab
w /path/to/somefile:保存模式空间匹配到的行至指定文件中;
~]# sed '/^UUID/w /tmp/fstab.txt' /etc/fstab
r /path/from/somefile: 读取指定文件的文本流至模式空间匹配到的行的行后;
~]# sed '6r /etc/issue' /etc/fstab
= :为模式空间中的行打印行号;
~]# sed '/^UUID/=' /etc/fstab
!: 取反条件;地址定界取反;
~]# sed '/^UUID/!d' /etc/fstab
s///:支持使用其他分隔符;s@@@,s###;
替换标记:
g:行内全局替换;
p:如果替换成功的行
w: /PATH/TO/SOMEFILE:将替换成功的结果保存至指定文件中
~]# sed 's@^UUID@uuid@' /etc/fstab
~]# sed -n 's@r..t@&er@p' /etc/passwd
高级编辑命令:
h:把模式空间中的内容覆盖至保持空间中;
H:把模式空间中的内容追加至保持空间中;
g:从保持空间取出数据覆盖至模式空间;
G:从保持空间取出内容追加至模式空间;
x:吧模式空间中的内容与保持空间中的内容进行互换;
n:读取匹配到的行的下一行至模式空间;
N:追加匹配到的行的下一行至模式空间;
d:删除模式空间中的行;
D;删除多行模式空间中的所有行;
转载于:https://www.cnblogs.com/Juvenile/p/8817702.html