shell脚本 sed流编辑器

sed:流编辑器

sed -n '/pattern/command' file

-n 显示pattern查找出的匹配行(不加-n会显示原来的行与匹配的行)

-e 直接在命令行进行sed编辑

sed -n -e '/aaaaa/p'  -e  '/AAAA/p' file    (p是打印的意思)

-f 有时上文中红色的长度过长 可以把上文红色放在文件file1中 

sed -n -f file1 file

-i 直接修改原文件内容

sed -i 's/love/hate/g;p' file  (把love改为hate 红色部分为固定格式)

pattern的匹配模式:

10command 匹配到第10行

sed -n '15p' file

10,20command 从第10行开始,到20行结束

sed -n '10,20p' file

10,+5command 匹配从第10行开始,到16行结束

sed -n '10,+2p' file

/pattern/command 匹配到pattern的行

sed -n '/love/p' file

/pattern1/,/pattern2/command  匹配从pattern1行开始,到匹配到pattern2的行结束

sed -n '/python/,/php/p' file

10,/pattern1/commad 从第10行开始,到匹配到pattern1行结束

sed -n '10,/php/p' file

/pattern1/,10command 匹配到pattern1的行开始,到第10行匹配结束

sed -n '/python/,10p'

command命令:

查询:p 打印

删除:d

增加:a (append) 行后增加            sed -i '/php/a content' file   在匹配的行后添加content

           i (infront)行前增加             sed -i '/php/,/python/i content' file   在所有匹配到的行前添加content

           r (read) 把r后的文件file1的内容追加到匹配行的后面    sed -i '/php/r file1' file

           w (write)   把匹配到的行写入到file2中      sed -i '/php/w file2' file

修改:s

           在每行中把php替换为python  (只替换一个)  sed -i 's/php/python/' file

           在每行中把php替换为python  (g全部替换)  sed -i 's/php/python/g' file

           在每行中把php替换为python  (替换第2个)  sed -i 's/php/python/2' file

           在每行中把php替换为python  (替换从第二个以后的匹配内容)  sed -i 's/php/python/2g' file

           在每行中把php替换为python  (不区分大小写 and 全部替换)  sed -i 's/php/python/ig' file

反向引用:(类似于php中正则的后向引用)  

sed -i 's/\(python.\)/\1s/g' file    把类似python1、python2、python3  后面添加s字符。 括号内的字符串是不变的,\1用于引用匹配的字符串,所以\1和小括号的方式可以进行部分替换。

两个条件 : sed -n '/^#/p;/^$/p' my.cnf.bak   查询#开头或者空行的行 ,用分号隔开

                    sed -i '/^#/d;/^$/d' my.cnf.bak  删除

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值