【Linux】sed工具的使用

星图妙赏 2019-09-01 19:17:05

前言

在有一定的正则基础应用后,我们可以来玩玩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 就是啦!

将etc/passwd的内容列出来并且打印行号。同时删除2~5行nl /etc/passwd | sed '2,5d';

将/etc/passwd/ 删除第2行nl /etc/passwd | sed '2d';

删除/etc/passwd 从第3行到最后一行nl /etc/passwd | sed '3,$d';

在/etc/passwd的第二行后加上“我是咔咔”字样nl /etc/passwd | sed '2a 我是咔咔';参数a是指目前行的下一行,也就2的下一行3,所以会出现在第三行

在第二行后加上“我是咔咔”与“我是咔咔2”字样,分为俩行显示nl 1 | sed '2a 我是咔咔\nihao';

查看一个文件的5到7行nl 1 | sed -n '2,5p';

修改文件的内容(不是真的修改)

直接修改文件内容(危险操作)加入的你的文件特别的大,使用vim打开的话那是很伤的,那么我们就可以使用sed来操作

在2行后边新增

把3到6行的数据直接取代了sed -i '3,6c 这是把3到6行的数据给取代的' 1;

2 阅读:392