Linux shell四剑客之sed

本文详细介绍了Linux shell四剑客之sed的使用。涵盖了sed命令的多种参数,如 -n 只显示处理后内容,a、i 用于添加内容,s 用于替换,d 用于删除等。还介绍了多命令组合、变量引用、直接写入文件、指定脚本文件以及支持扩展正则表达式等用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

四剑客之sed

格式:sed [-nefri] [动作]
其中n/e/f/r/i
动作有a,i,c,p,s

-n 默认把sed命令执行的结果,与原来的数据一起输出到屏幕,如果加了-n,则只显示sed处理后的内容
sed -n ‘1p’ sed.txt

a 在匹配的当前行的后面添加内容,add
sed ‘/Simple/ahelloworld’ sed.txt world后面有符号/则会直接显示出来

i 在匹配的当前行的上面添加内容,insert
sed ‘/Beautiful/ihelloyou’ sed.txt

& 在当前行匹配字符串的行尾添加字符串
sed ‘s/than/&hellworld/’ sed.txt 则直接在than的后面添加字符串hellworld

c 把该行替换成c后面的字符串
sed ‘2,4c hello world’ sed.txt 2-4行的内容替换成hello world

s 旧字符替换新字符,行数s/旧字符串/新字符串/g
sed ‘s/than/hello/’ sed.txt
sed ‘s/than/hello/g’ sed.txt
sed ‘2s/than/hahaha/’ sed.txt 匹配第二行的
sed ‘2,4s/than/hahaha/’ sed.txt 匹配第二行到第四行的

/pa/s/pa1/pa2/ 查找包含pa的行,然后把该行的第一个匹配pa1的字符串替换为pa2
/pa/s/pa1/pa2/g 查找包含pa的行,然后把该行所有的匹配pa1的字符串替换为pa2,g即代表global
sed ‘/Beautiful/s/than/hahaha/’ sed.txt
sed ‘/Beautiful/s/than/hahahah/g’ sed.txt
sed ‘/by/s/^/hello/’ sed.txt 在包含by行的头加上hello
sed ‘/by/s/^/&hello/’ sed.txt

p 输出,默认
sed ‘1,3p’ sed.txt 显示匹配的1-3行内容和原来内容
sed -n ‘1,3p’ sed.txt 只显示匹配行的内容
sed -n ‘2p;p′sed.txt显示第二行和最后一行的内容,中间用分号隔开,多行可以sed−n′2p;3p;p' sed.txt 显示第二行和最后一行的内容,中间用分号隔开,多行可以sed -n '2p;3p;psed.txtsedn2p;3p;p’ sed

d 删除
sed ‘/start/ ,/end/d’ file 删除包含第start行到第end行之间的所有行内容
sed ‘/start/, 8d’ file 删除包含第start行到第八行的内容
sed ‘1d’ sed.txt 删除第一行
sed ‘2,3d’ sed.txt 删除第二到三行
sed ‘/Simple/,$d’ sed.txt 删除匹配行到最后一行

-e 多个命令组合,对文件内容执行多条sed命令条件
sed -e ‘/Simple/s/better/worse/’ -e ‘/Flat/s/better/good/’ sed.txt

; 多个命令组合,注意引号位置
sed -e ‘/Complex/s/than/less/ ; /Flat/s/than/well/’ sed.txt

变量引用,需要先设置变量,不能用系统变量
abc=123
sed “s/Simple/$abc/g” sed.txt

-i 把sed命令修改的结果直接写入到文件里去,一般用来编辑文件内指定内容,屏幕不输出内容
如果要对所做的修改保存到原文件,则要加上-i,就会直接修改原文件内容
sed -i ‘/bash/s/bin/sbin/’ sed.txt

-f 指定执行sed脚本的文件名,可以把常用的或者是command比较长的内容写到一个文件
vim sedcommand
s/Simple/difficult/
sed -f sedcommand sed.txt
另外可以在一个文件里填写多个条件,然后分别匹配
vim sedcommand
s/Simple/difficult/
1p

-r 支持扩展正则表达式的语法,默认是基础正则表达式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值