首页 > 其他 > 详细

sed命令

时间:2019-08-19 21:14:52      阅读:115      评论:0      收藏:0      [点我收藏+]

sed命令

  流编辑器,以行为单位进行编辑;

  sed编辑文件但不改变原文件;

  sed命令有模式空间(PATTERN),文件按行的的形式传入模式空间进行处理

 1、常见选项

  -n  // 拒绝默认显示

  -r  // 指定使用拓展的正则表达式

  -e 脚本  // for while if

  -f  // 指定脚本文件

  -l  // 指定文件换行长度

  -i  // 直接修改文件内容(一般情况下不用使用)

2、地址定界方式

  21直接匹配数值

    sed -n ‘5,7p’ 文件  // 匹配57

  22 d ~ 步长

    Sed -n ‘1 ~ 3p’ 文件

  23 $ 指定行尾.代表光标所在当前行,可以用来vim的多行注释)

    Sed -n ‘10,$p’ 文件

  24 /正则/

    /pattern1/,/pattern2/   /正则1//正则2/ 第二种模式

  例:
    sed
-n /k\{5,\}/,$p abc     sed -n /\(fd\)\+/,+2p abc

 

  250addr

     addr可以是数字/$/正则表达式

例:
    sed -n 0,/k\{5,\}/p abc

  26 addrN

     配置addr行到addr后N行

例:    
    sed -n /fd/,+5p  abc

3、*常见命令

  p  // print 打印 (默认在屏幕上显示出来) 建议和-n一起使用;

  i  // 在匹配行的上一行添加指定内容

    sed “/aaa/i \A” a

  a  // 在匹配行的下一行添加指定内容

    sed “/bbb/a \B” c

  c  // 替换行

    sed “/aaa/c \A” a

  d  // 删除

  n  // N 读取/添加  模式匹配到行的下一行内容,在对其进行操作

  w  // 保存文件内容到一个新的文件

  *s*  // 文本内容替换,默认替换模式空间匹配到第一项(语法格式:s/需要替换的/替换后的/)

   g  // s一起用可以全部替换

  &  // 在字符串内容中应用pattern匹配到内容

  
  练习:
    1)删除/boot/grub/grub.conf文件中所有空白开头的行行首的空白字符;      

sed s/^[[:space:]]\+//g /boot/grub/grub.conf 

    2)删除/etc/fstab文件中所有以#开头,后面至少跟一个空白字符的行   的行首的#和空白字符;

sed s/^#[[:space:]]\+//g /etc/fstab

    3)给定一个目录,取出其目录名

 

echo "/etc/passwd"  |  sed s/[^/]\+$//

    4)给定一个目录,取出其文件名

echo "/etc/passwd" | sed s#^/.*/\(.*\)##

 

sed命令

原文:https://www.cnblogs.com/yxq-123/p/11379652.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!