=============Sed==================
Sed:是一款流编辑工具,用来对文本进行过滤与替换工作,特别是当你想对几十个配置文件进行统一修改时,你会体会到它的魅力;Sed通过一次仅读取一行内容来对某 些指令进行处理后输出,所以Sed更适合处理大数据文件;Sed通过文件或管道读取文件内容,但它默认并不直接修改源文件,而是将读入的内容复制到缓冲区(模 式空间),然后根据相应的指令对缓冲区中的内容进行处理并输出结果,默认输出至标准输出(即屏幕上);
一:Sed文本过滤工具,针对于行过滤:
(1)sed -n ‘xxp’
eg: sed -n ‘1p’ 打印第一行
sed -n ‘1,3p’ 打印1到3行
sed -n ‘1~2’ 打印奇数行,从第1行开始,每2行匹配一次操作地址
(2)sed -n ‘/^xxx/p’ 打印以xx开头的行
sed -n ‘/xxx$/p’ 打印以xx结尾的行
(3)sed -e 可以执行相匹配的多个条件
sed ‘/^a/p;/^[0-9]/p’ ceshi.sh 可以用封号将多个指令隔开
eg: sed -e ‘/^a/p’ -e ‘/^[0-9]/p’
(4) sed -n ‘//=’ 显示所匹配的行号
eg: sed -n ‘/^a/=’ ceshi.sh
(5) sed ‘//a ***’ 向匹配的行后追加内容,a后追加内容
sed ‘//i ****’ 向匹配的行前添加内容,i后为追加内容
sed ‘2a chehuiwei’ ceshi.sh 在第二行后追加
sed ‘3i chehuiwei’ ceshi.sh 在第三行前添加
sed ‘/ONBOOT/c ONBOOT=yes’ test.txt 将包含相关内容的行的内容更改
(6) sed -n ‘1,3!p’ 取反
(7)sed ‘1,2d’ ceshi.sh 删除1到2行
sed ‘/^a/d’ ceshi.sh 删除以a开头的行
sed ‘/^$/d’ ceshi.sh 删除文件中的空白行
(8) sed ‘s/旧的内容/替换的新内容/g’ ceshi.sh 替换
sed -n ‘1,2s/旧的内容/替换的新内容/p’ ceshi.sh 将前两行打印出来并替换相关内容
sed ‘s/旧的内容/替换的新内容/n’ ceshi.sh 当一行中有多个要替换的内容时,n指定替换第几个
grep -v ^$ ceshi.sh |sed ‘s/ru[1-3]/\<&\>/1;s/ru[1-3]/\<\/&\>/2‘ 用&来代替正则表达式匹配的内容
注意:如果规则表达式或替换字符串中有许多斜杠,则可以在s之后指定一个不同的字符来更改分割符:
eg: sed -e ‘s:/usr/local:/usr:g’ ceshi.sh 此时:是替换分隔符,sed会将/usr/local替换成/usr,e可加可不加
(9)sed -i 文件名称 将更改内容写入文件
eg: sed -i ‘s/旧的内容/新的内容/g’ ceshi.sh