shell命令篇--sed


脚本加锁,避免多实例重复运行,常用于备份脚本中

flock -xn "/tmp/f.lock"  -c "/root/a.sh"

find

find /etc/ -type f -regex .* wd    查看类型为文件且以wd结尾的文件

-d 文件夹

find *txt -exec rm -v {} \ ; 找到以txt结尾的文件并执行删除命令。

grep 字符串分割

grep pass /root/anaconda-ks.cfg | cut  -d " " -f 1       取匹配pass 字符以空格分割后第一的参数

sed 

sed  's/a/aa/' afile    将文件内容a替换为aa不改变原文件内容

 sed -e 's/a/aa/'  -e 's/aa/bb/' afile 多次替换文件内容

sed  -i 's/a/aa/;s/aa/bb/' afile 替换文件内容并修改原文件

* 代表b出现的次数,不代表所有字符

+ 代表b出现1次或多次

?代表b 出现0次或1次

 | 匹配a或b

回调

 sed 替换命加强版

全局替换

全局替换和执指定次数匹配

只显示替换成功的行

将替换成功内容写入指定文件

标志位

寻址

head  -6 /etc/passwd | sed '1,3s/adm/!/'              1-3行内替换adm为!

head -6 /etc/passwd | sed  '1,$s/adm/!/'    1-结尾替换adm为!

head -6 /etc/passwd | sed  '/^bin/s/adm/!/'  正则表达式替换adm 为!

分组

sed脚本文件 

。。。。。。

删除指令

 sed插入

匹配行内容上一行插入内容

 匹配内容下一行插入内容

 匹配内容改写