Linux shell四剑客之sed

四剑客之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 ′ s e d . t x t 显 示 第 二 行 和 最 后 一 行 的 内 容 , 中 间 用 分 号 隔 开 , 多 行 可 以 s e d − n ′ 2 p ; 3 p ; 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 支持扩展正则表达式的语法,默认是基础正则表达式

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值