sed学习

sed是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。

调用sed命令有两种形式:

  • sed [options] 'command' file(s)

  • sed [options] -f scriptfile file(s)

直接上例子:

sed -e 's/root/shrek/g' /etc/passwd 替换passwd文件中root成shrek(-e 允许多台编辑,s替换,g表示替换多个,负责只替换每行第一个)

sed -e '/bash/d' /etc/passwd 删除passwd中包含bash的行

sed -n -e '/\<shrek\>/p' /etc/passwd 打印passwd中包含shrek单词的行,和-n配合使用(-n取消默认输出)

sed -n -e '/\<shrek\>/s/bash/nologin/p' /etc/passwd 把文件中包含shrek的行中得bash单词替换成nologin并打印

sed -e '/\<shrek\>/s/bash/nologin/g' /etc/passwd >/tmp/a

cp /tmp/a /etc/passwd 把文件中包含shrek的行中所有bash单词替换成nologin并真正修改passwd

sed -e ''/^#/d' -e '/^$/' /etc/squid/squid.conf 删除文件中以#开头的行以及空格行

sed替换: sed 's/{old value}/{new value}'

多次替换: sed -e 's/mike/todd' -e 's/good/better'

sed 's/mike/todd;s/good/better'

地址是sed 定义编辑域的,没有默认是全文

地址可以是number,first~step,/regexp

$ sed '2d' example-----删除example文件的第二行。

$ sed '2,10d' example-----删除example文件的第二行到10行。

$ sed '2,$d' example-----删除example文件的第二行到末尾所有行。

$ sed '$d' example-----删除example文件的最后一行。

$ sed '1~2d' example-----删除example文件的第一行开始,步长为2的行。

$ sed '/test/d' example-----删除example文件所有包含test的行。

sed -f sss /etc/passwd

sss中得内容

s/bash/nologin

s/root/shrek

相当于sed -e's/bash/nologin' -e's/root/shrek' /etc/passwd

还有一种方式,写一个如下的脚本ss1

#!/bin/sed -f

s/bash/nologin

s/root/shrek

执行./ss1 /etc/passwd也能达到同样的效果

------------------运行info sed了解更多

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值