八、Linux三剑客之sed

处理文本文件的命令

参数说明

  • -e<script>或--expression=<script> 以选项中指定的脚本来处理输入的文本文件。
  • -f<script文件>或--file=<script文件> 以选项中指定的脚本文件来处理输入的文本文件。
  • -h或--help 显示帮助。
  • -n或--quiet或--silent 仅显示脚本处理后的结果。
  • -V或--version 显示版本信息。

动作说明

  • a :新增, a 的后面可以接字符串,而这些字串会在新的一行出现(目前的下一行)
  • c :取代, c 的后面可以接字符串,这些字串可以取代 n1,n2 之间的行!
  • d :删除,d 后面通常不接任何字符串;
  • i :插入, i 的后面可以接字符串,而这些字串会在新的一行出现(目前的上一行);
  • p :打印,将某个选择的数据印出。通常 p 会与参数 sed -n 一起使用
  • s :取代,搭配正规使用,例如 1,20s/old/new/g

案例

在testfile文件的第四行后添加一行,-e参数可省略

[root@tz shell]# sed -e 4a\newLine testfile
HELLO LINUX!
Linux is a free unix-type opterating system.
This is a linux testfile!
Linux test
newLine

删除2~5行

[root@tz shell]# nl /etc/passwd |sed '2,5d'
     1  root:x:0:0:root:/root:/bin/bash
     6  sync:x:5:0:sync:/sbin:/bin/sync
     7  shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
     8  halt:x:7:0:halt:/sbin:/sbin/halt
     9  mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

删除第二行

[root@tz shell]# nl /etc/passwd | sed '2d'

删除第3行到最后一行

[root@tz shell]# nl /etc/passwd |sed '3,$d'
     1  root:x:0:0:root:/root:/bin/bash
     2  bin:x:1:1:bin:/bin:/sbin/nologin

第2行后插入drink tea

[root@tz shell]# nl /etc/passwd | sed '2a drink tea'
     1  root:x:0:0:root:/root:/bin/bash
     2  bin:x:1:1:bin:/bin:/sbin/nologin
drink tea
     3  daemon:x:2:2:daemon:/sbin:/sbin/nologin

第2行前插入drink tea

[root@tz shell]# nl /etc/passwd |sed '2i drink tea'
     1  root:x:0:0:root:/root:/bin/bash
drink tea
     2  bin:x:1:1:bin:/bin:/sbin/nologin

第2行增加两行

[root@tz shell]# nl /etc/passwd | sed '2a Drink tea or .....\
> drink beer ?'
     1  root:x:0:0:root:/root:/bin/bash
     2  bin:x:1:1:bin:/bin:/sbin/nologin
Drink tea or .....
drink beer ?
     3  daemon:x:2:2:daemon:/sbin:/sbin/nologin






学习来自菜鸟教程

posted @ 2020-04-30 16:19  努力吧阿团  阅读(135)  评论(0编辑  收藏  举报