1. 打印:p参数
[root@localhost tmp]# cat -n ./passwd
1 root:x:0:0:jamm:/root:/bin/bash
2 bin:x:1:1:bin:/bin:/sbin/nologin
3 daemon:x:2:2:daemon:/sbin:/sbin/nologin
4 adm:x:3:4:adm:/var/adm:/sbin/nologin
5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
6 sync:x:5:0:sync:/sbin:/bin/sync
7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
8 halt:x:7:0:halt:/sbin:/sbin/halt
9 mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
10 news:x:9:13:news:/etc/news:
11 uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
12 operator:x:11:0:operator:/root:/sbin/nologin
13 games:x:12:100:games:/usr/games:/sbin/nologin
14 gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
15 ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
16 nobody:x:99:99:Nobody:/:/sbin/nologin
17 mailnull:x:47:47::/var/spool/mqueue:/sbin/nologin
18 smmsp:x:51:51::/var/spool/mqueue:/sbin/nologin
19 nscd:x:28:28:NSCD Daemon:/:/sbin/nologin
20 vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin
21 rpc:x:32:32:Portmapper RPC user:/:/sbin/nologin
22 sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
23 rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
24 nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
25 pcap:x:77:77::/var/arpwatch:/sbin/nologin
26 ntp:x:38:38::/etc/ntp:/sbin/nologin
27 dbus:x:81:81:System message bus:/:/sbin/nologin
28 haldaemon:x:68:68:HAL daemon:/:/sbin/nologin
29 avahi:x:70:70:Avahi daemon:/:/sbin/nologin
30 avahi-autoipd:x:100:101:avahi-autoipd:/var/lib/avahi-autoipd:/sbin/nologin
31 xfs:x:43:43:X Font Server:/etc/X11/fs:/sbin/nologin
32 gdm:x:42:42::/var/gdm:/sbin/nologin
33 jamm:x:500:500::/home/jamm:/bin/bash
34 dao:x:501:501::/home/dao:/bin/bash
而经过p参数之后打印出来的只有包含root的行
[root@localhost tmp]# sed -n "/root/p" passwd
root:x:0:0:jamm:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
这个就是p参数的用途,只要是打印
2.删除:d
下面的示例以passwd文件的前五行为例:
[root@localhost tmp]# cat -n passwd
1 root:x:0:0:jamm:/root:/bin/bash
2 bin:x:1:1:bin:/bin:/sbin/nologin
3 daemon:x:2:2:daemon:/sbin:/sbin/nologin
4 adm:x:3:4:adm:/var/adm:/sbin/nologin
5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
[root@localhost tmp]# sed "3d" passwd | cat -n 删除passwd文件第三行,注意引号内的格式
1 root:x:0:0:jamm:/root:/bin/bash
2 bin:x:1:1:bin:/bin:/sbin/nologin
3 adm:x:3:4:adm:/var/adm:/sbin/nologin
4 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
[root@localhost tmp]# sed "3,5d" passwd | cat -n 删除passwd文件第三至五行,注意引号内的格式,行数之间用引号
1 root:x:0:0:jamm:/root:/bin/bash
2 bin:x:1:1:bin:/bin:/sbin/nologin
[root@localhost tmp]# sed "4,$d" passwd | cat -n 删除passwd文件第四至最后行,注意引号内的格式,$表示最后一行
1 root:x:0:0:jamm:/root:/bin/bash
2 bin:x:1:1:bin:/bin:/sbin/nologin
3 daemon:x:2:2:daemon:/sbin:/sbin/nologin3. 选定行的范围:逗号
[root@TestAs4 chap04]# sed -n "/root/,/lp/p" datafile 所有在模板roott和lp所确定的行之间的行都被打印,看完下面的例子就明白了!
[root@localhost tmp]# sed -n "/root/,/lp/p" passwd | cat -n
1 root:x:0:0:jamm:/root:/bin/bash
2 bin:x:1:1:bin:/bin:/sbin/nologin
3 daemon:x:2:2:daemon:/sbin:/sbin/nologin
4 adm:x:3:4:adm:/var/adm:/sbin/nologin
5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
[root@localhost tmp]# sed -n "/root/,/bin/p" passwd | cat -n
1 root:x:0:0:jamm:/root:/bin/bash
2 bin:x:1:1:bin:/bin:/sbin/nologin
[root@localhost tmp]# sed -n "/root/,/adm/p" passwd | cat -n
1 root:x:0:0:jamm:/root:/bin/bash
2 bin:x:1:1:bin:/bin:/sbin/nologin
3 daemon:x:2:2:daemon:/sbin:/sbin/nologin
4 adm:x:3:4:adm:/var/adm:/sbin/nologin
[root@localhost tmp]# sed -n "/root/,/daemon/p" passwd | cat -n
1 root:x:0:0:jamm:/root:/bin/bash
2 bin:x:1:1:bin:/bin:/sbin/nologin
3 daemon:x:2:2:daemon:/sbin:/sbin/nologin
[root@localhost tmp]#sed -n "1,5"p datafile 打印第一至五行的内容[root@localhost tmp]# sed -n "1,5"p passwd | cat -n
1 root:x:0:0:jamm:/root:/bin/bash
2 bin:x:1:1:bin:/bin:/sbin/nologin
3 daemon:x:2:2:daemon:/sbin:/sbin/nologin
4 adm:x:3:4:adm:/var/adm:/sbin/nologin
5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
[root@localhost tmp]# sed -n "1,3"p passwd | cat -n
1 root:x:0:0:jamm:/root:/bin/bash
2 bin:x:1:1:bin:/bin:/sbin/nologin
3 daemon:x:2:2:daemon:/sbin:/sbin/nologin
[root@localhost tmp]# sed "/root/,/adm/s/$/###shitou###/" datafile 对于root和adm之间所有的行,末尾用###shitou###/替换
[root@localhost tmp]# sed "/root/,/adm/s/$/###shitou###/" passwd
root:x:0:0:jamm:/root:/bin/bash###shitou###
bin:x:1:1:bin:/bin:/sbin/nologin###shitou###
daemon:x:2:2:daemon:/sbin:/sbin/nologin###shitou###
adm:x:3:4:adm:/var/adm:/sbin/nologin###shitou###
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
[root@localhost tmp]# sed -n "/root/,/lp/p" passwd | cat -n 打印root和lp之间所有的行
1 root:x:0:0:jamm:/root:/bin/bash
2 bin:x:1:1:bin:/bin:/sbin/nologin
3 daemon:x:2:2:daemon:/sbin:/sbin/nologin
4 adm:x:3:4:adm:/var/adm:/sbin/nologin
5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
[root@localhost tmp]# sed -n "/root/,/daemon/p" passwd | cat -n
1 root:x:0:0:jamm:/root:/bin/bash
2 bin:x:1:1:bin:/bin:/sbin/nologin
3 daemon:x:2:2:daemon:/sbin:/sbin/nologin4.多点编辑:e命令[root@localhost tmp]# sed -e "s/root/daolang/" datafile 用daolang替换root字符串
[root@localhost tmp]# sed -e "s/root/daolang/" passwd
daolang:x:0:0:jamm:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
[root@localhost tmp]#
5. 从文件读入:r 命令
[root@localhost tmp]# cat t.txt 查看原文件内容
* start*
Name 1st 2nd 3th
dmtsai 21000 20000 23000
bird2 43000 42000 41000
* end*
[root@localhost tmp]# sed "/daemon/r t.txt" passwd 再出现daemon那一行,之后读入t.txt文件的内容root:x:0:0:jamm:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
* start*
Name 1st 2nd 3th
dmtsai 21000 20000 23000
bird2 43000 42000 41000
* end*
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
注:如果不止一个daemon 则t.txt的内容就将显示在所有匹配行的下面,如下面所示:
[root@localhost tmp]# sed "/bin/r t.txt" passwd
root:x:0:0:jamm:/root:/bin/bash
* start*
Name 1st 2nd 3th
dmtsai 21000 20000 23000
bird2 43000 42000 41000
* end*
bin:x:1:1:bin:/bin:/sbin/nologin
* start*
Name 1st 2nd 3th
dmtsai 21000 20000 23000
bird2 43000 42000 41000
* end*
daemon:x:2:2:daemon:/sbin:/sbin/nologin
* start*
Name 1st 2nd 3th
dmtsai 21000 20000 23000
bird2 43000 42000 41000
* end*
adm:x:3:4:adm:/var/adm:/sbin/nologin
* start*
Name 1st 2nd 3th
dmtsai 21000 20000 23000
bird2 43000 42000 41000
* end*
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
* start*
Name 1st 2nd 3th
dmtsai 21000 20000 23000
bird2 43000 42000 41000
* end*
6. 写入文件:w命令
[root@TestAs4 chap04]# sed -n "/bin/w newfile2" datafile 命令w表示把所有包含bin的行写入到newfile2
[[root@localhost tmp]# sed "/bin/w passwd.txt" passwd
root:x:0:0:jamm:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
[root@localhost tmp]# more passwd.txt
root:x:0:0:jamm:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin7. 追加:a 命令
[[root@localhost tmp]# sed "/root/a --->>> test -a arguments " passwd
root:x:0:0:jamm:/root:/bin/bash
--->>> test -a arguments
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
注: 在出现首个单词是root的后一行追加---->THE NORTH SALES DISTRICT HAS MOVED行
8. 插入: i 命令
[root@TestAs4 chap04]# sed "/eastern/i
> NEW ENGLAND REGION
> -------------------------------------" datafile
northwest NW Charles Main 3.0 .98 3 34
western WE Sharon Gray 5.3 .97 5 23
southwest SW Lewis Dalsass 2.7 .8 2 18
southern SO Suan Chin 5.1 .95 4 15
southeast SE Patricia Hemenway 4.0 .7 4 17
NEW ENGLAND REGION
-------------------------------------
eastern EA TB Savage 4.4 .84 5 20
northeast NE AM Main Jr. 5.1 .94 3 13
north NO Margot Weber 4.5 .89 5 9
central CT Ann Stephens 5.7 .94 5 13
注:如果模板eastern被匹配,i命令把反斜杠后面的文本插入到包含eastern的行的前面
9. 替换:s 命令
[root@TestAs4 Oracle]# pwd
/u01/app/oracle
[root@TestAs4 oracle]# pwd | sed "s//[^/]*$/old/" 把“/ u01/app/oracle”的 “/oracle”替换为old
/u01/appold
[root@TestAs4 chap04]# sed -n "s/Hemenway/Jones/pg" datafile 所有的Hemenway行被Jones 替换并打印
southeast SE Patricia Jones 4.0 .7 4 17Linux下iSCSI的配置ANSYS 11.0 for Linux(RedHat 9.0)安装相关资讯 Linux教程
- Linux教程:如何在命令行中查看目 (07/28/2014 12:22:23)
- Linux 修改root密码 (11/03/2012 07:53:38)
- su - root 与su root的区别 (06/06/2012 00:39:40)
| - Linux进程间通信:消息队列 (01/28/2013 09:43:00)
- U盘安装Linux开机无法启动解决方法 (10/07/2012 08:55:52)
- Windows 7/Linux 同步时间 (05/15/2012 06:17:55)
|
本文评论 查看全部评论 (0)