linux中sed深入,Linux中的sed

应用举例:

1、找出包含数字 0 的行

# sed -n '/0/p' /tmp/passwd

# nl /tmp/passwd | sed -n '/0/p'

1、找出包含任意数字的行

# sed -n '/[0-9]/p' /tmp/passwd

2、查找不包含数字 0 的行

# sed '/0/d' /tmp/passwd

2、删除前5行中,包括数字0的行

3、将 /etc/passwd 的内容列出并且列印行号,同时,请将第 2~5 行删除!

# nl /etc/passwd | sed '2,5d'

1 root:x:0:0:root:/root:/bin/bash

6 sync:x:5:0:sync:/sbin:/bin/sync

7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

4、只要删除第 2 行

# nl /etc/passwd | sed '2d'

5、要删除第 3 到最后一行

# nl /etc/passwd | sed '3,$d'

6、在第二行后追加一行i am zxhk

# nl /etc/passwd | sed '2a i am zxhk'

7、在第二行前追加一行i am zxhk

# nl /etc/passwd | sed '2i i am zxhk'

6、在第二到第五行每行后都追加一个i am zxhk

# nl /tmp/abc | sed '2,5a i am zxhk'

7、在第二行前追加两行i am zxhk  和 i come from china

# nl /etc/passwd | sed '2a i am zxhk\

> drink beer ?'

8、将第2-5行的内容替换成为"i am zxhk"(以行为单位的替换与显示)

# nl /tmp/abc | sed '2,5c i am zxhk'

9、仅列出 /etc/passwd 文件内的第 5-7 行内容

# nl /etc/passwd | sed -n '5,7p'

10、搜索/etc/passwd有root关键字的行

# nl /etc/passwd | sed '/root/p'

11、删除/etc/passwd所有包含root的行

# nl /etc/passwd | sed  '/root/d'

12、将/etc/passwd中包含root的行中的bash替换为blueshell

# nl /etc/passwd | sed -n '/root/{s/bash/blueshell/;p}'

(找到root对应的行,执行后面花括号中的一组命令,每个命令之间用分号分隔)

数据的搜寻并替换

sed 的搜寻与替代的与 vi 相当的类似!

格式:

sed 's/要被取代的字串/新的字串/g'

13、获取本机的ip信息,如下:192.168.1.100 Bcast:192.168.1.255 Mask:255.255.255.0

# ifconfig eth0 | sed -n "/inet addr/{s/^[[:space:]]*//g;p}"

14、获取IP地址(后面的部分予以删除)

# ifconfig eth0 | sed -n "/inet addr/{s/^[[:space:]].*addr://;p}" | sed -n '/cast/{s/[[:space:]].*//g;p}'

# ifconfig eth0 | sed -n "/inet addr/{s/^[[:space:]].*addr://;s/[[:space:]].*//g;p}"

15、将sysctl.conf中的net.ipv4.ip_forward = 0改为1

16、将apache的配置文件中的#ServerName www.example.com:80行首的#去掉

# sed 's/^#\(ServerName www\)/\1/' /etc/httpd/conf/httpd.conf

17、删除file.txt中的注释行和空白行

# sed  -e '/#/d' -e '/^$/d' file.txt

直接修改文件内容(危险动作)

18、利用 sed 将file.txt 内每一行结尾若为 . 则换成 !

# sed -i 's/\.$/\!/g' file.txt

19、利用 sed 直接在 file.txt 最后一行加入『# This is a test』

# sed -i '$a # This is a test' file.txt

注意:

$ 代表的是最后一行,a 的动作是新增,因此该文件最后新增『# This is a test』!

sed 的『 -i 』选项可以直接修改文件内容,这功能非常有帮助

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值