sed与正则用法收集

1.将文本每行最后七个字符换成!号

sed   -n  's#.{7}$#!#p' ooo

在文本的每一行前添加#符号

sed  's/^.?/#&/' passwd

&  替代符 替代前面所匹配的

?  数量符  需要转义 表示1个或0个

/  分隔符 此处三个都是 可以用别的符号代替

 

2.将某个目录下所有文件文本中的kkkkk 换成 ddddd

sed -i 's/kkkkk/ddddd/g' `grep -rl  mydir`

grep 中  -r递归  -l输出文件名

 

 3.截取文本中的某一段(IP地址)并存放与文件中

(1)cat eth0 | sed 's/.*t addr://' | sed 's/ Bc.*//' |xargs echo > ech0

(2)sed  -i  -e  's/.*t addr://'   -e  sed 's/B.*//'  eth0

 

 

.*  表示任意字母任意数量

-e  表示多点编辑

-i   表示修改文件

 

4.删除第6行到最后一行

sed   '6,$d'  file

 

5.删除第1行 和 第3行

sed   -e  '1d'  -e '3d'  file

 

6.再第3行上面插入两行

sed '3a hello world

>the text' file             (>不是我打上去的是自动显示的)

 

7.替换行

sed '3c33333333'  file

替换第三行

 

8.对字符操作

8-1删除某个字符

sed  '/root/d'  file

把file中的root删除

8-2显示包含摸个字符的行

sed -n '/root/n'  file

把file中包含root的行显示出来

8-3检索行并于此执行命令 命令间分好隔开

sed -n  '/root/{s/bash/bullet;p;q}'  file

file中含root的行上 把bash改成bullet并打印出来 最后退出

s替换 p打印 q退出

未完待续。。。

 

原文地址:https://www.cnblogs.com/yechanglv/p/6947108.html