sed命令
一、基础概念
sed是一个文本流编辑器,全称为Stream EDitor。
sed命令拥有两个加工空间,分别为模式空间和保持空间,类似工厂加工零件的一车间、二车间。
模式空间
sed命令处理文件时将文本流依次读进自己的模式空间完成加工处理,处理完毕后将模式空间信息输出至屏幕
保持空间
保持空间的信息不进行任何输出,其可以配合模式空间完成一些高级操作。比如文本逆序、添加空行等等。普通编辑用不到保持空间,仅模式空间即可
二、命令用法
命令格式:sed [OPTION]... ‘script’ input-file...
|
|
三、 练习
- 删除/etc/group2.cfg文件中所有以空白开头的行行首的空白字符
sed 's/^[[:space:]]\+//' /etc/grub2.cfg
- 删除/etc/fstab/文件中所有以#开头,后面至少跟一个空白字符的行的行首的#和空白字符
sed 's/^#[[:space:]]\+//' /etc/fstab
- echo一个绝对路径给sed命令取出取基名,取出其路径名及目录名
目录名:~]# echo /etc/sysconfig/network-scripts/ifcfg-ens33/ | sed -r 's@[^/]+/?$@@'
路径名:~]# echo /etc/sysconfig/network-scripts/ifcfg-ens33/ | sed -r 's@/?$@@' | sed -r 's@/.*/@@'
- 显示偶数行
~]# sed -n 'n;p' /etc/fstab
- 逆序显示文件内容
~]# sed '1!G;h;$!d' /etc/fstab
- 取出文件最后一行
sed '$!d' /etc/fstab
- 取出文件最后两行
~]# sed '$!N;$!D' /etc/fatab
- 删除原文件的所有空白行,之后在所有非空白行后面添加一个空白行
~]# sed '/^$/d;G' /etc/fatab
- 显示奇数行
~]# sed 'n;d' /etc/fstab
- 在原有的每行后面添加一个空白行
~]# sed 'G' /etc/fatab
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Busyops!
评论