正则表达式(初级)之sed

前端之家收集整理的这篇文章主要介绍了正则表达式(初级)之sed前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
      1. sed:数据流编辑器
      1. sed基本用法
      1. sed:StreamEDitor
      1. sed:行编辑器[全屏编辑器:vi]
      1. sed的内存空间称为模式空间:
      1. 默认不编辑源文件
      1. sed[options]'AddressCommand'file......
      1. -n:只打印符合条件的行
      1. -i:直接修改文件
      1. -eSCRIPT-eSCRIPT:可以同时支持多个脚本
      1. -f/PATH/TO/SED_SCRIPT
      1. sed-f/path/to/scriptsfile
      1. -r:表示使用扩展正则表达式
      1. Address:
      1. 1.StartLineEndLine(起始行,结束行)中间用,(逗号)隔开
      1. 比如1,100从第一行到第一百行
      1. $:最后一行。$-1倒数第二行
      1. 2./RegExp/这个模式就是正则表达式
      1. /^root/表示以root字符串开头的行
      1. 3./pattern1/,/pattern2/
      1. 第一次被pattern1匹配到的行开始,至第一次被pattern2匹配到的行结束,这中间的所有行
      1. 4.LineNumber
      1. 指定的行
      1. 5.StartLine,+N
      1. startLine开始,向后的N
      1. Command:
      1. d:删除符合条件的行:sed'1,2d'/etc/fstab删除第一行,第二行,,,,sed'/oot/d'/etc/fstab删除中包含oot的行
      1. sed'1,+2d'/etc/fstab删除前三行
      1. p:显示符合条件的行;sed'/^\//p'显示以/开头的行
      1. a:\string:在指定的行后面追加新的行,内容string
      1. \n:可以换行
      1. i:\string:在指定的行前面追加新行,内容string
      1. rFILE:将指定的文件内容添加至符合条件的行处。sed'2r/etc/issue'/etc/fstab将/etc/issue文件显示在/etc/fstab后面的第二行
      1. wFILE;将地址指定范围内的行另存至指定文件
      1. s/pattern/string/:查找并替换,默认只替换每一行中第一次被模式匹配到的串例如:sed's/oot/OOT/'/etc/fstab
      1. 加修饰符:
      1. g:全局替换
      1. i:忽略字符大小写
      1. s///:s###,s@@@等等,都能用。
      1. &:引用模式匹配的整个串例子:sed's#l..e#&r#g'sed.txt文件l..e替换成l..er
      1. sed练习题:
      1. 1删除/etc/grub.conf文件中行首的空白符;
      1. sed's/^[[:space:]]+//g'/etc/inittab
      1. 2、替换/etc/inittab文件"id:3:initdefault:"一行中的数字为5
      1. sed-n's/\(id:\)[0-9]\(:initdefault\)/\15\2/p'/etc/inittab
      1. 3删除/etc/inittab文件中的空白行;
      1. sed'/^$/d'/etc/inittab
      1. 4删除/etc/inittab文件中开头的#号;
      1. sed's/^#//p'/etc/inittab
      1. 5删除文件中开头的#号及后面的空白字符,但要求#号后面必须有空白字符;
      1. sed's/^#[[:space:]]\{1,\}//p'/etc/inittab
      1. 6删除文件中以空白字符后面跟#类的行中的开头的空白字符及#
      1. sed's/^[[:space:]]\{1,\}#//p'/etc/inittab
      1. sed-r's/^[[:space:]]+#//g'/etc/inittab
      1. 7、取出一个文件路径的目录名称;
      1. echo"/etc/rc.d/"|sed-r's@^(/.*/)[^/]+/?@\1@g'
      1. 8、取出一个文件路径的基名(也就是目录名称后面的)
      1. echo"/etc/rc.d/"|sed-r's@^/.*/([^/]+)/?@\1@g'

    猜你在找的正则表达式相关文章