-
- sed -e 4a\testfour text
#在test文件第四行的下一行插入testfour
[oracle@aaaserver ~]$ sed -e 4a\testfour test
onetwothreefourtestfourfivesix[oracle@aaaserver ~]$ sed '3a testthree' test
onetwothreetestthreefourfivesix- sed -e 4i\testfour test
#在test文件第四行的上一行插入testfour
[oracle@aaaserver ~]$ sed -e 4i\testfour test
onetwothreetestfourfourfivesix
$表示文本的最后一行,a表示增加,在test文件的最后一行写入 over:(-i表示直接写入文本,慎用)
sed -i '$a over' test
[root@joe ~]# sed -i '$a over' test
[root@joe ~]# more test 123456over- nl /etc/passwd
#列出行号显示/etc/passwd的内容
[oracle@aaaserver ~]$ nl /etc/passwd
1 root:x:0:0:root:/root:/bin/bash2 bin:x:1:1:bin:/bin:/sbin/nologin3 daemon:x:2:2:daemon:/sbin:/sbin/nologin4 adm:x:3:4:adm:/var/adm:/sbin/nologin5 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin6 sync:x:5:0:sync:/sbin:/bin/sync7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown8 halt:x:7:0:halt:/sbin:/sbin/halt9 mail:x:8:12:mail:/var/spool/mail:/sbin/nologin10 operator:x:11:0:operator:/root:/sbin/nologin- nl etc/passwd |sed '3,7d'
#去除3到7行内容显示/etc/passwd
[oracle@aaaserver ~]$ nl /etc/passwd |sed '3,7d'
1 root:x:0:0:root:/root:/bin/bash2 bin:x:1:1:bin:/bin:/sbin/nologin8 halt:x:7:0:halt:/sbin:/sbin/halt9 mail:x:8:12:mail:/var/spool/mail:/sbin/nologin10 operator:x:11:0:operator:/root:/sbin/nologin11 games:x:12:100:games:/usr/games:/sbin/nologin- nl installActions2019-02-19_05-36-24PM.log |sed '5,$d'
#将第5行至最后一行去除后显示
[oracle@aaaserver logs]$ nl installActions2019-02-19_05-36-24PM.log |sed '5,$d'
1 INFO: Using paramFile: /u02/software/database/install/oraparam.ini2 INFO: 3 INFO: 4 INFO: Checking Temp space: must be greater than 120 MB. Actual 267035 MB Passed- sed '3c testthree'
#将第三行替换位testthree
[oracle@aaaserver ~]$ sed '3c testthree' test
onetwotestthreefourfivesixnl test |sed -n '3,6p'
#仅显示3到6行的内容
[oracle@aaaserver ~]$ nl test |sed -n '3,6p'
3 three4 four5 five6 sixnl alert_aaaserver.log|sed -n '/rror/p'
#只显示xx文件中带有rror字符的行[
oracle@aaaserver trace]$ nl alert_aaaserver.log |sed -n '/rror/p'
4846 Fatal NI connect error 12170.4853 Tns error struct:4866 Fatal NI connect error 12170.4873 Tns error struct:4886 Fatal NI connect error 12170.4893 Tns error struct:4916 Fatal NI connect error 12170.4923 Tns error struct:4936 Fatal NI connect error 12170.4943 Tns error struct:4966 Fatal NI connect error 12170.4973 Tns error struct:5131 Fatal NI connect error 12170.5138 Tns error struct:[oracle@aaaserver trace]$ ifconfig|grep inet
inet 192.168.0.186 netmask 255.255.255.0 broadcast 192.168.0.255inet6 fe80::4ccb:d7a5:7e0c:9a34 prefixlen 64 scopeid 0x20<link>inet 127.0.0.1 netmask 255.0.0.0inet6 ::1 prefixlen 128 scopeid 0x10<host>inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255sed 's/要被取代的字串/新的字串/g'
[oracle@aaaserver trace]$ ifconfig|grep inet|sed -n 's/inet //p'
192.168.0.186 netmask 255.255.255.0 broadcast 192.168.0.255127.0.0.1 netmask 255.0.0.0192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255[oracle@aaaserver trace]$ ifconfig|grep inet|sed -n -e 's/inet //p'|sed 's/netmask.*//'
192.168.0.186 127.0.0.1 192.168.122.1
sed -e 执行多个命令(或引号‘’内用分号;分开要执行命令),例:只显示test文件中包含two和six的行
[oracle@ctp ~]$ sed -n -e '/two/p' -e '/six/p' test
twosix[oracle@ctp ~]$ sed -n '/two/p;/six/p' test
twosix- a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
- c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
- d :删除,因为是删除啊,所以 d 后面通常不接任何咚咚;
- i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
- p :打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~
由於 $ 代表的是最后一行,而 a 的动作是新增,因此该文件最后新增 # This is a test!
sed 的 -i 选项可以直接修改文件内容,