sed常用

简介:


【打印】

nl /etc/issue | sed -n  '1,2p'


解释

1,2 指定行

p 打印的动作

-n 选项默认不输出。(sed 默认的是不匹配的也将输出) -n 选项和p行为时长一起出现。




【替换】

语法:sed ’s#正则#不可用正则表达式#g’  作用替换为空

如: 更改salt-minion配置文件  /etc/salt/minion  修改master和id

正常字符之间的替换

1
sed   -i   's/#master: salt/master: 10.59.72.1/g'  /etc/salt/minion

使用系统变量的:

1
sed  -i   "s/#id:/id: `hostname`/g"    /etc/salt/minion


【分组替换】

()起来的分组,可以使用\1代替第一个分组,\n代替第n个分组

1
ifconfig  eth0 |  sed  -n  's#^.*inet addr:\(.*\)  Bcast.*$#\1#gp'


【替换】


【指定行插入】

首行插入

1
sed  -i  '1i\newlineword\n'   /etc/issue


指定行后面追加()

nl /etc/issue | sed '1,2i\insert oneline\n换行符'



解释:

1,2 行指定的位置

i 为 插入(在指定位置处插入)




【删除指定行】

把第一行第二行删除

nl /etc/issue | sed  '1,2d'  



【模式匹配地址】

匹配地址Addresses的方式有

1、地址行指定如 

    单行: 1

    多行: 1,2

    $表示最后一行:3,$

    addr1,+N: nl /etc/issue | sed -n  '1,+2p'

    addr1,~N: nl /etc/passwd | sed -n  '2,~3p'  从第二行开始到3的倍数为止

    first~step: nl /etc/passwd | sed -n  '2~3p' 打印first+N*step步长的行


2、正则匹配

    /regexp/ 正则匹配: nl /etc/issue | sed -n  '/[cC]ent[oO][sS]/p'

     

3、取反

    不匹配行的取反:nl /etc/passwd | sed -n  '/nologin/!p'

            nl /etc/passwd | sed  '/nologin/!d' 

    


实例: 打印奇数行

nl /etc/passwd | sed -n  '1~2p'


删除#开头的

sed  -e '/release/d' -e '/^#/d' file.cnf


 



【正则表达式】

特殊字符意义

&表示引用前面匹配的字符

# sed -i 's/root/(&)/g' test                   




[被替换的字符串中含有变量]

zone="ipo.com"

echo "a.txt.ip.cn| "sed "s#.$zone.##g"

本文转自残剑博客51CTO博客,原文链接http://blog.51cto.com/cuidehua/1787190如需转载请自行联系原作者


cuizhiliang

相关文章
|
6月前
|
Unix Windows Perl
sed具体的介绍
sed具体的介绍
53 2
|
Perl
Sed使用总结
Sed使用总结
43 0
|
人工智能 移动开发 Unix
三剑客之 sed
三剑客之 sed
|
移动开发 开发工具 Perl
|
JavaScript Java Shell
|
JavaScript Java Shell
|
机器学习/深度学习 Unix Shell