动做:
p 打印输出
d 删除操做
a 在指定的行后面添加一行内容
i 在指定的行前面添加一行内容bash
一、查看操做url
sed -n '5p' file //只查看文件的第5行 sed -n '3,5p' file //查看文件的第3到第5行 sed -n '5,$ p' file //打印第5到最后一行
二、删除操做blog
sed '3 d' 1.txt //删除文件的第3行 ,而后将内容进行输出,不是直接操做的文件。 sed '3,5 d' 1.txt //删除第三行到五行。 sed '3,$ d' 1.txt //删除第三行到最后一行。
三、添加操做文档
sed '2a word' file //在第二行后面添加一行,内容为word sed '3i word' file //在第三行前面添加一行,内容为word
三、查找操做博客
sed -n '/root/p' file //只输出root关键字的行 sed '/root/d' file //将含有root的行删除,而后输出,加上-i能够操做原文件
四、替换操做class
sed 's/root/new/' file //将文件中的root替换成new,每行只替换一次 sed 's/root/new/g' file //将每行的全部root所有替换成new g替换屡次 sed '3,4s/root/new/g' 1.txt //只替换第3到第4行的root为new
sed 综合运用sed
*****************************************************file
文档内容以下:grep
19-罗锦辉:http://www.cnblogs.com/jw1519
20-甘露秋:http://www.cnblogs.com/bazhahei
21-张靖:http://www.cnblogs.com/zj21
22-黄庭辉:http://www.cnblogs.com/1796440575hth
23-刘波:http://www.cnblogs.com/oppppo
24-杨俊杰:http://www.cnblogs.com/duolaameng
25-侯宝:word
一、只输出学生姓名 cat jw |sed 's/[0-9 a-Z ://.\-]/ /g' 二、只输出每一个学生的url cat jw |sed 's/.*:\/.//g' |sed '/.*:/d' 三、只输出我的博客里的学号 cat jw |sed 's/-.*/ /g' 四、只输出我的博客中,两个字姓名的学生名 cat jw |sed 's/[0-9 a-Z ://.\-]//g' |grep -v '...' 五、只输出每一个人博客地址的最后一段,即.com/后面的一段内容 cat jw |sed 's/.*\// /g' |sed 's/.*://g' 六、只输出最后一段所有是字母的 cat jw |sed 's/.*\// /g' |sed 's/.*[0-9].*/ /'| 七、只输出最后一段含有大写字母的 cat jw |sed 's/.*\// /g' |sed -n '/[A-Z]/p'
将/etc/passwd的最后一行所有改为/bin/bash
cat /etc/passwd|sed 's/\(.*:\)\(.*\)/\1\/bin\/bash/' // (.*:) 第一部分 (.*)第二部分 1表示第一部分
2.将/etc/passwd每行前面的用户名,添加到最后一段
如:root:x:0:0:root:/root:/bin/bash
处理后应该为
root:x:0:0:root:/root:/bin/bash:root
cat passwd |sed 's/\(^[a-Z]*\)\(.*\)/&:\1/' // &表示所有
3.一文本内容以下:
192.168.100.2
172.16.5.4
10.101.2.5
133.37.25.21
经过命令将其处理成以下效果(转换到一行,经过逗号隔开,每行内容用单引号引发来)
'192.168.100.2','172.16.5.4','10.101.2.5','133.37.25.21'
cat 1.txt |sed "s/^\|$/'/g" |tr '\n' ','|sed 's/,$/\n/g' //先将每行文本的先后加上单引号,再将换行符转换为逗号,在将最后一个逗号转换为换行符。 ^ 开始 $结尾 | 或者