Linux文本编辑三剑客---sed

本文深入讲解sed编辑器的使用方法,包括基本选项、编辑命令、地址定界以及高级编辑技巧。通过实例演示如何进行文本处理,如删除空白行、逆向显示文件内容等。

sed:编辑器

        sed :Stream Editor,行编辑器:

用法:

        sed [option]...  'script' inputfile..

常用选项
选项解释
-n不输出模式中的内容至屏幕
-e多点编辑,也就是一条命令进行多次的编辑
-f /PATH/TO/SCRIPT_FILE从指定脚本文件中读取编辑脚本
-r支持使用扩展正则表达式
-i原处编辑及修改原文件(原处修改时,不要加编辑命令p)

 

 

 

 

 

 

 

示例1:选项-n的作用(-n一般要与p选项连用)

示例2:选项-e的作用

示例3:选项-f的作用

示例4:选项 -i的作用

编辑命令
命令解释
d删除
p显示模式空间中的内容
a \text在行后面追加文本;支持使用\n实现多行追加
i \text在行前面追加文本;支持使用\n实现多行追加
c \text替换行为单行或多行文本
w /path/to/somefile保存模式空间匹配到的行至指定文件中
r /path/to/somefile读取指定文件中的文本流至模式空间中匹配到的行的行后
=为模式空间中的行打印行号
!取反条件,放置在编辑命令之前
s///

替换;支持使用其他分隔符:s@@@,s###

替换标记:

              g:行内全局替换

              p:显示替换成功的行;

             w /PATH/TO/SOME/FILE:将替换成功的结果保存至指定的文件中

  

 

 

 

 

 

 

 

 

 

 

 

 

 

示例1:编辑命令 d的作用(删除空白行)

示例2:编辑命令a \text的作用

示例3:编辑命令 i \text的作用

示例4:编辑命令c \text的作用

示例5:编辑命令w /path/to/somefile的作用

示例6:编辑命令r /path/to/somefile的作用

示例7:编辑命令=的作用

示例8:编辑命令!的作用(放置在编辑命令之前)

示例9:编辑命令s///的作用

地址定界
定界符解释
无定界符号对全文进行处理
a(单地址)匹配第a行进行处理
a, b匹配从第a行到b行进行处理
a,+n匹配从第a行+n行进行处理
/pattern/处理配模式匹配上的每一行
a,/pattern/匹配从a行到模式匹配上的行
/pat1/,/pat2/匹配从模式pat1到模式part2之间的行
~步进

 

 

 

 

 

 

 

 

 

 

示例:定界符号~的作用(分别打印出奇数行以及偶数行)

高级编辑命令
高级编辑命令解释
h把模式空间中的内容覆盖至保持空间中
H把模式空间中的内容追加至保持空间中
g从保持空间中取出数据覆盖至模式空间
G从保持空间中取出数据追加至模式空间
x把模式空间中的内容和保持空间中的内容进行互换操作
n读取匹配到的行的下一行至模式空间
N追加匹配到的行的下一行至模式空间
d删除模式空间中的行
D删除多行模式空间中的所有行

 

 

 

 

 

 

 

 

 

 

 

高级编辑命令的简单示例:

sed -n 'n;p' sed.sh 

作用:匹配偶数行

sed '1!G;h;$!d' sed.sh

作用:逆向显示文件内容

sed '$!N;$!D' sed.sh

作用:显示文件最后两行

sed '$!d' sed.sh

作用:取文件最后一行

 sed 'G' sed.sh

作用:在每行后加空白行

 sed '/^$/d;G' sed.sh

作用:合并多个空白行,并且在每行后增加一行空白行

sed 'n;d' sed.sh

作用:显示奇数行

sed -n '1!G;h;$p' sed.sh

作用:逆向显示文件内容

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值