sed命令使用举例


选择操作的行范围

sed -n '1,2p' testsed2.txt  匹配第1到2行
sed -n '/a/,/b/p' testsed2.txt  匹配从包含a的行到包含b的行
sed -n '/a/,3p' testsed2.txt  匹配从包含a的行到第3行
sed -n '/a/p' testsed2.txt  匹配包含a的行
sed -n 'p' testsed2.txt  匹配所有行

操作命令

sed '1,2p' testsed2.txt #打印第一二行

sed '1,2d' testsed2.txt #删除第一二行

sed '1,2i \test' testsed2.txt #在第一二行前分别插入一行
sed '1,2i \test\nhello' testsed2.txt #在第一二行前分别插入两行

sed '1,2a \test' testsed2.txt #在第一二行后分别插入一行
sed '1,2r test.txt' testsed2.txt  #在第一二行后分别插入一个文本文件内容

sed '1,2w a.txt' testsed2.txt #将匹配行保存到新文件
sed '1,2=' testsed2.txt #将匹配行的行号显示到前一行中
sed '1,2s/a/aa/' testsed2.txt #将匹配的行进行查找替换

sed '1,2s@b@bb@' testsed2.txt #可以用其他符号代替间隔符号


选项部分

sed '1,2p' testsed2.txt
sed -n '1,2p' testsed2.txt #不显示模式空间的内容

sed -i 'a \hello world' test.txt #修改源文件
cat test.txt 

sed -e 's/a/aa/g' -e 's/b/bb/i' testsed2.txt #使用-e同时支持多个操作
sed '{s/a/aa/g;s/b/bb/i}' testsed2.txt #不用-e的方式

sed -r 's/^(a|b)//' testsed2.txt#支持扩展正则表达式

练习题目

1、替换/etc/inittab中的"id:3:initdefault"一行数字为5;
sed '/^id/s/:[0-9]:/:5:/' /etc/inittab 
2、删除/etc/init.d/functions的空白行;
sed -r '/^[[:space:]]*$/d' /etc/init.d/functions
3、删除/boot/grub/grub.conf文件中行首的空白字符;
sed -r 's/^[[:space:]]+//g' /boot/grub/grub.conf 
4、echo一个路径给sed,通过sed取出其目录名;例如echo "/etc/sysconfig/" | sed,返回/etc;
echo "/etc/sysconfig/" | sed -r 's@/[^/]+/?$@@'





转载于:https://www.cnblogs.com/tsw1107/p/86d4a3724e1356a3ef71e41c50a26055.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值