官方定义:
Linux sed命令是利用script来处理文本文件。
sed可依照script的指令,来处理、编辑文本文件。
Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。
--
介绍动作属性-需要时回来查看就可以,不需要死记硬背
a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
d :删除,因为是删除啊,所以 d 后面通常不接任何咚咚;
i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
p :打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~
s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦!
--
文本的搜索并替换
使用 sed 匹配文件内容,直接修改,注意这个会直接修改源文件。
格式:
sed -i "s/查找字段/替换字段/g" grep 查找字段 -rl 路径
例如:
1: 将文件1.txt内的文字“garden”替换成“mirGarden”
# sed -i "s/garden/mirGarden/g" 1.txt //sed -i 很简单
2: 将当前目录下的所有文件内的“garden”替换成“mirGarden”
# sed -i "s/garden/mirGarden/g" `ls` //其实也就是ls出多个文件名而已
--
以行为单位的新增和删除
在平常文本中,我一般是使用vim进行编辑文本,但是如果有一个100W行的文件,vim岂不是原地爆炸了,sed命令可以很好的执行这些动作
例如
将index.php 的内容列出并且列印行号,同时,请将第 2~5 行删除! #:~/demo$ nl index.php | sed '2,5d'
sed 的动作 '2,5d', d就是删除动作,所以删除了2-5行,需要注意的是,sed后面接的动作,必须以 '' 号扩住。
只要删除第 2 行 #~/demo$ nl index.php | sed '2d' 要删除第 3 到最后一行 #~/demo$ nl index.php | sed '3,$d'
--
以行为单位的替换
将第2-5行的内容取代成为『我是文本』呢?
~/demo$ nl index.php | sed '2,5c 我是文本'
c 动作就是有取代的意思,透过这个方法我们就能够将数据整行取代了.
--
其他的用法会在之后慢慢工作和学习中补充。