sed 流编辑器



sed流编辑器:
stream Editor
行编辑器  (全屏编辑器:vi)
sed:模式空间
默认情况下不编辑原文件
sed  ‘AddressCommand’ file 。。。
-n:静默模式,不再显示模式空间中的内容
-i: 直接修改原文件
-e SCRIPT -e  SCRIPT:同时执行多个执行脚本
-f   逐行读取文件中的脚本
使用正则:history |sed 's#^[[:space:]]*##g'
1、startLine,EendLine
    比如1,100
2、/RegExp正则表达式/
3、/Pattern1/,/pattern2/
   第一次被模式一匹配到的行开始,至第一次被pattern2匹配到的行结束
4、LineNumber
    指定的行
   $:最后一行
5、startLine,+N
   从startline开始,向后N行;

command
d:删除指定的行
p:打印   显示符合条件的行
a \"string":在指定的行后追加新行,其内容为“string” sed '/^#/a \#linux' /etc/fstab
i \"string":在指定的行前面添加新行,其内容为“string”  sed '/^#/i \#linux' /etc/fstab
r  FILENAME:将指定的文件的内容添加至符合条件的行处
w  FILENAME:将指定范围内的内容另存至指定的文件夹中
s/pattern/string/g:查找并替换,默认只替换每一行中第一次被模式匹配到的字符串       sed 's/^\//#/' /etc/fstab
           加修饰符
           g:全局替换
           i:忽略字符大小写
s///,s###,s@@@
           \(\), \1, \2  后向引用   sed ‘s#\(l..e)#\1r#g’ sed.txt
           &在后面添加:sed 's#l..e#&r#g' sed.txt
                  前面添加: sed 's#l..e#r&#g' sed.txt

    sed练习:
1、删除/etc/grub.conf文件中首行的空白符
sed -r 's@^[[:space:]]+@@g' /etc/grub.conf
2、删除/etc/initab文件中开头的#号
sed 's@^#@@g' /etc/inittab
3、删除某文件中开头的#号及后面的空白字符,但要求#号的后面必须

有空白字符;
sed -r 's@^[[:space:]]+@@g' /etc/inittab
4、删除/etc/initab文件中开头的空白行
sed '/^$/d' /etc/inittab
5、删除某文件中以及空白字符后面跟#类的行中的开头的空白字符及#
sed -r 's@^[[:space:]]+#@@g'   /etc/inittab
6、取出一个文件路径的目录名称;
echo "/etc/rc.d" |sed -r 's@^(/.*)[^/]+/?@\1@g'
7、替换/etc/inittab文件中“id:3:initdefault:”一行中的数字为5;
sed 's@\(id:\)[0-9]\(:initdefault:\)@15\2@g' /etc/inittab


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值