文章目录


前言

在有一定的正则基础应用后,我们可以来玩玩sed的使用。sed本身是一个管线命令,可以分析standard input的,而且sed也是可以将数据进行取代,删除,新增,截取功能,我们先了解一个,然后在聊他的用法

1. sed用法

参数

a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
d :删除,因为是删除啊,所以 d 后面通常不接任何咚咚;
i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
p :打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~
s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正则表达式!
例如 1,20s/old/new/g 就是啦!

  1. 将etc/passwd的内容列出来并且打印行号。同时删除2~5行
    nl /etc/passwd | sed ‘2,5d’;
    【Linux】sed工具的使用_sed
  2. 将/etc/passwd/ 删除第2行
    nl /etc/passwd | sed ‘2d’;
    【Linux】sed工具的使用_修改文件_02
  3. 删除/etc/passwd 从第3行到最后一行
    nl /etc/passwd | sed ‘3,$d’;
    【Linux】sed工具的使用_数据_03
  4. 在/etc/passwd的第二行后加上“我是咔咔”字样
    nl /etc/passwd | sed ‘2a 我是咔咔’;
    参数a是指目前行的下一行,也就2的下一行3,所以会出现在第三行
    【Linux】sed工具的使用_修改文件_04
  5. 在第二行后加上“我是咔咔”与“我是咔咔2”字样,分为俩行显示
    nl 1 | sed ‘2a 我是咔咔\nihao’;
    【Linux】sed工具的使用_Linux_05
  6. 查看一个文件的5到7行
    nl 1 | sed -n ‘2,5p’;
    【Linux】sed工具的使用_数据_06
  7. 修改文件的内容(不是真的修改)
    【Linux】sed工具的使用_Linux_07
  8. 直接修改文件内容(危险操作)
    加入的你的文件特别的大,使用vim打开的话那是很伤的,那么我们就可以使用sed来操作
    【Linux】sed工具的使用_数据_08
  9. 在2行后边新增
    【Linux】sed工具的使用_sed_09
  10. 把3到6行的数据直接取代了
    sed -i ‘3,6c 这是把3到6行的数据给取代的’ 1;
    【Linux】sed工具的使用_修改文件_10
  11. 把文章的456换成789然后进行修改
    【Linux】sed工具的使用_数据_11

2. 注意点

上边的所有的操作,只要在sed 后边跟哥 -i 那么所有的操作都会是真实的写入,而非直观的查看而已。所以-i这个参数在不了解的时候请慎用