sed命令的使用

2019-06-01 分类:基础内容, 常用命令 阅读(27) 评论(0)

命令格式:

sed [options] 'command' file(s)

sed [options] '要操作的行 内置命令'  file

or

sed [options] '/正则表达式/内置命令'  file

正则也可以不用/,用#@~特殊符号也可以

选项参数

-e 允许多项编辑
-n 取消默认的输出
-i 直接修改对应文件
-r 支持扩展元字符

内置命令参数

a      在当前行后添加一行或多行

c       在当前行进行替换修改

d      在当前行进行删除操作

i       在当前行之前插入文本

p      打印匹配的行或指定行

n      读入下一输入行,从下一条命令进行处理

!       对所选行以外的所有行应用命令

w      将匹配的内容写入到一个新的文件中

h      把模式空间里的内容重定向到暂存缓冲区

H      把模式空间里的内容追加到暂存缓冲区

g      取出暂存缓冲区的内容,将其复制到模式空间,覆盖该处原有内容

G      取出暂存缓冲区的内容,将其复制到模式空间,追加在原有内容后面

s       替换命令标志

g      行内全局替换

i       忽略替换大小写

 

举例(加-i才会修改文件):

-e:先删除1-9行 在进行内容替换

sed -e '1,9d' -e 's#root#admin#g' passwd

p:p和-n一般一起使用

打印包含halt的行

sed -n  '/halt/p' passwd

打印第二行的内容

sed -n  '2p' passwd

打印最后一行的内容

sed -n  '$p' passwd

a:在当前行后添加一行或多行

在第3行的下一行添加指定内容

sed '3a content' test.conf

c:在当前行进行替换修改

修改第七行的内容

sed '7c SELINUX=Disabled' /etc/selinux/config

也可以使用正则,找出以SELINUX=开头的内容的行,修改为执行内容

sed '/^SELINUX=/c SELINUX=Disabled' /etc/selinux/config

d:删除行

删除第二行的内容

sed '2d' test.conf

删除最后一行的内容

sed '$d' test.conf

使用正则删除包含mail的行

sed /mail/d test.conf

i:在当前行之前插入文本

在第三行插入的上一行添加指定内容

sed '3i content;' passwd

w:将匹配的内容写入到一个新的文件中

将包含root的行,写入新的文件当中

sed -n '/root/w newfile' passwd

n:对下一行进行操作

删除包含root行的下一行

sed '/root/{n;d}' passwd

替换root行下一行的内容

sed -n '/root/{n;s#login#aaaaaaa#;p}' passwd

!:对所选行以外的所有行应用命令

删除除了第三行的所有内容

sed '3!d' /etc/hosts

s:替换字符串,i:忽略大小写,g:行中所有匹配内容都替换

将所有root修改为admin,忽略大小写

sed 's/root/admin/gi' passwd

&代表前面匹配到的内容,下面命令的作用就是在nologin结尾的行后面添加test

sed 's/nologin$/&test/' passwd

后向引用:在正则部分加括号,第一个括号匹配的内容为\1,第二个为\2    ......,&代表正则表达式整体匹配的内容

查找出eth1网卡的ip地址

ip a s eth1 | sed -n 3p | sed 's#.*et (.*)/.*#\1#'

指定行批量添加注释。^匹配的是行首,替换为#&,即为在行首添加#号

sed '2,5s/^/#&/' test.conf

匹配内容添加注释,在root所在行的行首添加注释

sed '/root/s/^/#&/' test.conf

您可能也喜欢:

centos7修改网卡名

主要参数: net.ifnames=0 biosdevname=0   1.修改网卡名称 vim /etc/sysconfig/network-scripts/ifcfg-ens33 修改下面两个参数为新的网卡名: NAME=eth0 DEVICE=eth0   2.修改网卡配置...

more

buffer和cache的区别

buffer(缓冲):在内存中存入一定量的数据一次性写入到磁盘,减少磁盘写入次数 cache(缓存):内存的速度比硬盘的速度快很多的,在内存中缓存下一些数据,下次使用读取的时候会提高速度 ...

more

cp,mv等花括号用法

格式: {要替换的字符串,替换后的字符串}:左花括号要放在需要替换的字符串前面   例如: test.txt改为ceshi.txt mv {test,ceshi}.txt   将1.txtb改为1.txt mv 1.txt{b,}   将1.txt改为1.txtb mv...

more

欢迎新朋友你的到来!
还没有人抢沙发呢~
昵称
邮箱
网站

登录

忘记密码 ?

切换登录

注册