zoukankan      html  css  js  c++  java
  • sed命令

    一、sed

      sed是用来编辑文本文件的命令

    1、格式

      sed [参数]... [执行命令] [输入文件]...

    2、参数

      -n:安静模式,只打印受影响的行,默认打印输入数据的所有内容

      -e:用于在脚本中添加多个执行命令一次执行,在命令行中执行多个命令通常不需要添加该命令

      -f filename:指定执行filename中的命令

      -r:使用扩展正则表达式,默认为标准正则表达式

      -i:将直接修改输入文件内容,而不是打印到标准输出设备

    3、执行命令格式

      [n1][,n2]command

      [n1][~step]command

      其中一些命令可以在后面加上作用范围:

      sed -i 's/sad/happy/g' test # g表示全局范围

      sed -i 's/sad/happy/4' test # 4表示指定行中的第四个匹配字符串

      其中 n1,n2 表示输入内容的行号,它们之间为,逗号则表示从 n1 到 n2 行,如果为波浪号则表示从 n1 开始以 step 为步进的所有行;command 为执行动作

    4、command动作指令

      s:行内替换

      c:整行替换

      a:插入到指定行的后面

      i:插入到指定行的前面

      p:打印指定行,通常跟-n来使用

      d:删除指定行

    案例1:插入(a/i)

      sed '2a123' 1.txt          将1.txt文件中的第2行后面加一行123

      sed '1,3a123' 1.txt        将1.txt文件中的第1行到第3行后面都加一行123

      sed '2i123' 1.txt          将1.txt文件中的第2行前面加一行123

      sed '1,3i123' 1.txt        将1.txt文件中的1到3行前面都加一行123

     

    案例2:整行替换(c)

      sed '2c123' 1.txt          将1.txt中的第二行替换为123

      sed '1,3c123' 1.txt          将1.txt中将1到3行都替换成123

     

    案例3:条件替换(s)

      sed 's/123/456/' 1.txt        第所有行中的第一个123替换为456

      sed '1s/123/456/' 1.txt        将第1行中的第一个123替换为456

      sed '1s/123/456/g' 1.txt        将第1行中的所有123都替换为456

      sed 's/abc/xyz/gi' 1.txt        将1.txt中所有的abc都替换成xyz,i表示不区分大小写

      sed '1,3s/abc/xyz/gi' 1.txt      将1.txt中的第1行到第3行的abc都替换为xyz

     

    案例3:删除(d)

      sed '2d' 1.txt            将1.txt中的第2行删除

      sed '1,2d' 1.txt            将1.txt中的第1行和第2行都删掉

     

    案例4:打印(p)

      sed '2p' 1.txt            重复打印1.txt中的第2行

      sed '1,3p' 1.txt          重复打印1.txt中1到3行

      sed -n '2p' 1.txt          只打印1.txt中的第2行

      sed -n '1,3p' 1.txt          只打印1.txt中1到3行

      sed -n '/abc/p' 1.txt        打印1.txt中包含abc的行,跟grep类似

      sed -n '/abc/!p' 1.txt        打印1.txt中不包含abc的行,跟grep -v类似

      sed -n 's/abc/xyz/gp' 1.txt      只打印1.txt中匹配替换的行

     

  • 相关阅读:
    Remoting系列(一)Remoting的基本概念
    软件设计师
    如果让我重做一次研究生
    VS2005Web控件拖动
    JS实现文本框回车提交
    SqlDataReader
    SqlCommand.ExecuteScalar
    DataSet
    电子商务部应该做些什么?【转】
    e
  • 原文地址:https://www.cnblogs.com/xwxxh/p/13346104.html
Copyright © 2011-2022 走看看