Linux笔记50--Shell编程5-字符截取命令4-sed命令

Linux笔记50–Shell编程5-字符截取命令4-sed命令

student.txt:

ID Name PHP LINUX MySQL Average
1 Liming 82 95 86 87.66
2 Sc 74 96 87 85.65
3 Gao 99 83 93 91.66

  1. sed命令

    sed是一种几乎包括在所有UNIX平台(包括Linux)的轻量级流编辑器。sed主要是用来将数据进行选取,替换,删除,新增的命令。不仅可以编辑文件,还可以直接编辑命令结果

  2. 命令格式

    sed [选项] ‘[动作]’ 文件名

    • 选项
    选项 含义
    -n 一般sed命令会把所有数据都输出到屏幕,如果加入此选项,则只会把经过sed命令处理的行输出到屏幕
    -e 允许对输入数据应用多条sed命令编辑
    -i 用sed的修改结果直接修改读取数据的文件,而不是由屏幕输出(不光修改输出数据,原数据也会进行更改)
    • 动作

      动作 含义
      a : 追加,在当前行后添加一行或多行。添加多行时,出最后一行外,每行行末尾需要用“\”代表数据未完结
      c : 行替换,用c后面的字符串替换原数据行,替换多行时,除最后一行外,每行末尾需用“\”代表数据未完结
      i : 插入,在当前行前插入一行或多行。插入多行时,除最后一行外,每行末尾需用“\”代表数据未完结
      d: 删除,删除指定的行
      p: 打印,输出指定的行
      s: 字串替换,用一个字符串替换另外一个字符串。格式:“行范围s/旧字串/新字串/g”
  3. 行替换例子

    • sed -n ‘2p’ student.txt #查看第二行

    • df -h | sed -n ‘2p’ #查看命令结果第二行,可以跟在管道符之后

    • sed ‘2,4d’ student.txt #删除第二行第四行的数据,但不修改文件本身

    • sed '2a hello \

      world’ student.txt #在第二行后追加两行数据

    • sed ‘2c No such person’ student.txt #替换第二行数据

  4. 字符串替换例子

    sed ‘s/旧字符串/新字符串/g’ 文件名

    • sed ‘3s/74/99/g’ student.txt #在第三行中,把74改成99
    • sed -e ‘s/Liming//g;s/Gao//g’ student.txt #把文件中所有的"Liming"和"Gao"字符串替换为空

你可能感兴趣的:(Linux)