格式详解

sed 行文件编辑工具。因为它编辑文件是以行为单位的。

命令格式

sed [参数] '<匹配条件> [动作]' [文件名]
注意:
可以通过 sed -help 查看帮助信息

参数详解

参数为空    #表示sed的操作效果,实际上不对文件进行编辑
-n          #取消静默输出
-i          #表示对文件进行编辑
注意:mac版本的bash中使用 -i参数,必须在后面单独加个东西: -i ''

匹配条件

匹配条件分为两种:数字行号或者关键字匹配
关键字匹配格式:'/关键字/'
注意:隔离符号 / 可以更换成 @、#、!等符号
      根据情况使用,如果关键字和隔离符号有冲突,就更换成其他的符号即可。

动作详解

a    在匹配到的内容下一行增加内容
i    在匹配到的内容当前行增加内容
d    删除匹配到的内容
s    替换匹配到的内容
p    查看指定内容
注意:上面的动作应该在参数为-i的时候使用,不然的话不会有效果

查看实践

格式: sed '行号p' 文件名
       sed '/内容/p' 文件名
sed '3p' sed.txt 
sed  -n '3p' sed.txt 
sed  -n '2,3p' sed.txt
sed -n '/SED4/p' sed.txt

替换实践

格式:
sed -i '行号s#原内容#替换后内容#列号' [文件名]
sed -i 's#原内容#替换后内容#g' [文件名]
关键点;
行号不写表示所有行,
列号不写,表示匹配到的第一个
列号是g,表示指定行所有的匹配内容
示例:
sed 's#sed#SED#' sed.txt 
cat sed.txt 
sed -i 's#sed#SED#' sed.txt 
cat sed.txt 
sed -i '2s#sed#SED#2' sed.txt 
cat sed.txt 
sed -i 's#sed#SED#g' sed.txt 
cat sed.txt

增加实践

指定行的下一行增加  
sed '行号a\新内容' 文件名
sed '/内容/a\新内容' 文件名
示例:
cat -n sed.txt 
sed -i '2a\add-1' sed.txt 
cat -n sed.txt 
sed -i '1,3a\add-3' sed.txt 
cat -n sed.txt 
sed -i '/SED1/a\add-sed1' sed.txt 
cat -n sed.txt
指定行的当行增加
sed '行号i\新内容' 文件名
sed '/内容/i\新内容' 文件名
示例:
cat -n sed.txt 
sed -i '1i\insert-1' sed.txt
cat -n sed.txt 
sed -i '6,8i\insert-1' sed.txt
cat -n sed.txt 
sed -i '/SED5/i\insert-sed5' sed.txt
cat -n sed.txt

删除实践

删除格式
sed '行号d' 文件名
sed '/内容/d' 文件名
示例:
cat -n sed.txt 
sed -i '8d' sed.txt 
cat -n sed.txt 
sed -i '7,11d' sed.txt 
cat -n sed.txt 
sed -i '/add-3/d' sed.txt 
cat -n sed.txt 
sed -i '/SED/d' sed.txt 
cat -n sed.txt

实践文件内容

sed.txt

nihao sed1 sed2 sed3
nihao sed4 sed5 sed6
nihao sed7 sed8 sed9

学习笔记,记录一下!

Last modification:August 31st, 2020 at 09:56 pm
如果觉得我的文章对你有用,请随意赞赏