赞
踩
命令格式:
sed [参数] '<匹配条件> [动作]' [文件名]
注意:
可以通过 sed --help 查看grep的帮助信息
参数详解:
参数为空 表示sed的操作效果,实际上不对文件进行编辑
-i 表示对文件进行编辑
注意:mac版本的bash中使用 -i参数,必须在后面单独加个东西: -i ' '
匹配条件:
匹配条件分为两种:数字行号或者关键字匹配
关键字匹配格式:
'/关键字/'
注意:
隔离符号 / 可以更换成 @、#、!等符号
根据情况使用,如果关键字和隔离符号有冲突,就更换成其他的符号即可。
动作详解
-a 在匹配到的内容下一行增加内容
-i 在匹配到的内容上一行增加内容
-d 删除匹配到的内容
-s 替换匹配到的内容
注意:
上面的动作应该在参数为-i的时候使用,不然的话不会有效果
替换命令演示
行号、列号、全体
命令格式:
sed -i [替换格式] [文件名]
注意:替换命令的写法
's###' ---> 's#原内容##' ---> 's#原内容#替换后内容#'
常见替换格式:
模板文件内容
admin-1@ubuntu:~$ cat sed.txt
nihao sed sed sed
nihao sed sed sed
nihao sed sed sed
替换 每行首个匹配内容:
sed -i 's#原内容#替换后内容#' 文件名
示例:替换首每行的第1个sed为SED
admin-1@ubuntu:~$ sed -i 's#sed#SED#' sed.txt
admin-1@ubuntu:~$ cat sed.txt
nihao SED sed sed
nihao SED sed sed
nihao SED sed sed
替换 全部匹配内容:
sed -i 's#原内容#替换后内容#g' 文件名
示例:替换全部sed为des
admin-1@ubuntu:~$ sed -i 's#sed#SED#g' sed.txt
admin-1@ubuntu:~$ cat sed.txt
nihao SED SED SED
nihao SED SED SED
nihao SED SED SED
指定 行号替换 首个匹配内容:
sed -i ' 行号s#原内容#替换后内容#' 文件名
示例:替换第2行的首个SED为sed
admin-1@ubuntu:~$ sed -i '2s#SED#sed#' sed.txt
admin-1@ubuntu:~$ cat sed.txt
nihao SED SED SED
nihao sed SED SED
nihao SED SED SED
首行指定 列号替换匹配内容:
sed -i 's#原内容#替换后内容# 列号' 文件名
示例:替换每行的第2个SED为sed
admin-1@ubuntu:~$ sed -i 's#SED#sed#2' sed.txt
admin-1@ubuntu:~$ cat sed.txt
nihao SED sed SED
nihao sed SED sed
nihao SED sed SED
指定 行号列号匹配内容:
sed -i ' 行号s#原内容#替换后内容# 列号' 文件名
示例:替换第3行的第2个SED为sed
admin-1@ubuntu:~$ sed -i '3s#SED#sed#2' sed.txt
admin-1@ubuntu:~$ cat sed.txt
nihao SED sed SED
nihao sed SED sed
nihao SED sed sed
增加操作
作用:
在指定行号的下一行增加内容
格式:
sed -i '行号a\增加的内容' 文件名
注意:
如果增加多行,可以在行号位置写个范围值,彼此间使用 逗号隔开,例如
sed -i '1,3a\增加内容' 文件名
演示效果:
指定行号增加内容
admin-1@ubuntu:~$ sed -i '2a\zengjia-2' sed.txt
admin-1@ubuntu:~$ cat sed.txt
nihao SED sed SED
nihao sed SED sed
zengjia-2
nihao SED sed sed
指定1~3每行都增加内容
admin-1@ubuntu:~$ sed -i '1,3a\tongshi-2' sed.txt
admin-1@ubuntu:~$ cat sed.txt
nihao SED sed SED
tongshi-2
nihao sed SED sed
tongshi-2
zengjia-2
tongshi-2
nihao SED sed sed
在指定行号的当行增加内容
格式:
sed -i '行号i\增加的内容' 文件名
注意:
如果增加多行,可以在行号位置写个范围值,彼此间使用 逗号隔开,例如
sed -i '1,3a\增加内容' 文件名
指定行号增加内容
admin-1@ubuntu:~$ sed -i '1i\insert-1' sed.txt
admin-1@ubuntu:~$ cat sed.txt
insert-1
nihao SED sed SED
tongshi-2
nihao sed SED sed
tongshi-2
zengjia-2
tongshi-2
nihao SED sed sed
删除操作
作用:
指定行号删除
格式:
sed -i '行号d' 文件名
注意:如果删除多行,可以在行号位置多写几个行号,彼此间使用 逗号隔开,例如
sed -i '1,3d' 文件名
删除第4行内容
admin-1@ubuntu:~$ sed -i '4d' sed.txt
admin-1@ubuntu:~$ cat sed.txt
insert-1
nihao SED sed SED
tongshi-2
tongshi-2
zengjia-2
tongshi-2
nihao SED sed sed
删除多行(3-5行)内容
admin-1@ubuntu:~$ sed -i '3,5d' sed.txt
admin-1@ubuntu:~$ cat sed.txt
insert-1
nihao SED sed SED
tongshi-2
nihao SED sed sed
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。