2018-10-17

10月17日任务

9.4/9.5 sed


首先创建一个sed目录

将grep里面的文件cp到sed中,重名名为 test

强项在于替换,替换一些指定的字符。

vim的时候,其中有一个功能叫做替换

root 替换成 


sed '//'p test.txt // 中间是需要匹配的字符串

打印出所有的含root的行,不要多余的行的话

需要sed -n '/root/' p test.txt

// 中间也支持. * +  但是+需要使用脱义符号\

sed -nr 

类似grep -E



sed -n '2'p test.txt 第二行

sed -n '2,5'p test.txt 从2 到5行

sed -n '2,$'p test.txt 从二到最后行

sed -n '1,$'p test.txt 全部行


sed -e '1'p -e'/bus/'p -n test.txt 打印第一行 匹配第二行的的


-e 的表达式可以并列写上,意思是第一行打印出来,第二个命令是指匹配bus的命令,也是可以重合的


grep的时候使用 -i 不区分大小写

再sed中 sed -n '/bus/'p test.txt 匹配的小写

sed中 sed -n '/bus/'Ip test.txt 加上了I 匹配出大写的

除了打印指定行,匹配指定行,还可以删除指定行

例如,删除日志的前五个月的记录

vim 打开文件,然后使用dd命令删除

直接使用grep 指定记录时间,匹配出有多少行,grep -n

然后使用sed 指定行进行删除 

sed '1,25'd test.txt 这里的d仅仅是把剩下的行列出来,没删除。


sed -i '1,25'd test.txt直接删除了

sed -i '/user2/'d test.txt


sed的替换作用,类似于vim的查找替换很类似


首先指定范围

sed '1,10s/root/toor/g' test.txt 

g全局替换


sed 记得用r 否则要使用脱义符 


需求第一段和最后一段互换位置,首先要找到这两段,因为是使用:进行分割,所以先找到:

.* 是贪婪匹配,一直配到最后


之前使用vim 用到一个需求

将root替换到123 带有/的话 在替换的时候 要使用到脱义符,或者将/用@替换掉,只要能区分开

使用sed删除文档里面的英文字母删除

sed 's/[a-zA-Z]//'g


当需要把所有行的前面加上一个字符串

首先匹配前面额字符串

sed -r 's/(.*)/aaa.&/' 所有行之前加一个字符串

你可能感兴趣的:(2018-10-17)