您的位置:首页 > 运维架构 > Linux

linux基础之sed命令

2015-09-29 23:44 429 查看
1.sed的基本用法:sed [OPTION]... ‘script’ input-file...2.sed:Stream Editor 文本编辑器 行编辑器(全屏编辑器:vi)3.sed:模式空间默认不编辑源文件,仅对模式空间中的数据做处理,而后,处理结束后,讲模式空间打印至屏幕1>.常用选项: -n : 静默模式,不再默认显示模式空间的内容;-i : 直接修改源文件;-e : script -escript 可以同时执行多个脚本,多点编辑;-f : /PATH/to/scripts file ,从指定文件中读取编辑脚本;-r : 表示使用扩展正则表达式;2>.地址定界: (1).不给地址:对全文进行处理; (2). 单地址: # :指定的行; /pattern/: 被此处模式所能够匹配到的每一行; (3).地址范围: #,# #,+# /pat1/,/pat2/ #,/pat1/ (4)~ :步进 1~2 2~2 4.编辑命令: d : 删除p : 显示符合条件的行
a \text:在制定的行后面追加新行,内容为text;
i \text:在制定的行前面天剑新行,内容为text; c \text:替换行为单行或多行文本;
w /path/to/somefile: 将指定范围内的内容另存至制定的文件中; \n :可以用于换行 r /path/from/somefile: 读取指定文件的文本流至模式空间中匹配到的行的行后; = :为模式空间中的行打印行号; ! :取反条件; s /pattern/string/: 支持使用其他分隔符,s@@@,s### 查找并替换,默认只替换每行中第一次被模式匹配到的字符串 替换标记: g 每个都被替换,行内全局替换 I 忽略字符的大小写换 p: 显示替换成功的行; w /path/to/somefile: 将替换成功的结果保存至指定文件中练习: 1.删除/boot/grup/grup.conf文件中所有空白开头的行行首的空白字符:[root@localhost ~]# sed 's@^[[:space:]]\+@@' /boot/grub/grub.conf 2.删除/etc/fstab文件中国所有以#开头,后面至少跟一个空白字符的行的行首的#和空白字符:[root@localhost ~]# sed 's@^#[[:space:]]\+@@' /etc/fstab3.echo一个绝对路径给sed命令,取出其基名,取出其目录名:[root@localhost ~]# echo "/etc/sysconfig" | sed 's@[^/]\+/\?$@@' 5.高级编辑命令: h: 把模式空间中的内容覆盖至保持空间中; H:把模式空间的内容追加至保持空间中; g: 从保持空间取出数据覆盖至模式空间; G :从保持空间去除内容追加至模式空间 x: 把模式空间中的内容与保持空间中的内容进行互换; n: 读取匹配到的行的下一行至模式空间; N: 追加匹配到的行的下一行至模式空间; d : 删除模式空间中的行; D: 删除多行模式空间中的所有行;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux 编辑器 sed