sed命令是Linux中的一种文本编辑工具,它使用流编辑器(stream editor)的方式对文本进行处理,它可以通过一系列的编辑命令对文本进行修改和转换操作。
sed命令选项 -h或--help:显示帮助;
-V或--version:显示版本信息。
-e :直接在命令行模式上进行sed动作编辑,此为默认选项;
-f :将sed的动作写在一个文件内,用–f filename 执行filename内的sed动作;
-i :直接修改文件内容。
-n :只打印模式匹配的行。
sed参数
d 【删除】 删除匹配的行;
s 【替换】 替换匹配成功的内容;
c 【修改】 修改匹配成功的内容;
a 【添加】 在匹配成功的行下面插入内容;
i 【添加】 在匹配成功的行上面插入内容;
p 【打印】 打印匹配成功的内容;
sed应用替换内容
替换单个
# 匹配第一个127.0.0.1内容并替换为127.0.0.2
# 第一种书写方式
sed -i 's/127.0.0.1/127.0.0.2/' test.sh
# 第二种书写方式
sed -i 's?127.0.0.1?127.0.0.3?' test.sh
替换所有
# 末尾加g表示替换所有匹配成功的内容,否则只替换第一个匹配成功。
sed -i 's/127.0.0.1/127.0.0.2/g' test.sh
按行替换
# 替换第一行
sed '1s/127.0.0.2/127.0.0.1/' test.sh
# 替换第一行到第二行
sed '1,2s/127.0.0.2/127.0.0.1/g' test.sh
追加内容
# 在第二行后面追加hello内容
sed -i '2a\hello' test.sh
# 在每一行后面都追加hell内容
sed -i 'a\hello' test.sh
# 在最后一行追加hello内容
sed -i '$a\hello' test.sh
# 在第二行前面追加hello内容
sed -i '2i\hello' test.sh
# 在每一行前面都追加hell内容
sed -i 'i\hello' test.sh
删除内容
# 删除第一行
sed -i '1d' test.sh
# 删除2到4行
sed -i '2,4d' test.sh
# 删除第一行
sed -i '^d' test.txt
# 删除最后一行
sed -i '$d' test.txt
# 删除所有空行
sed -i '/^$/d' test.txt
打印内容
# 打印所有匹配行
sed -n '/127.0.0.1/p' test.sh
# 打印所有匹配的内容和行号
sed -n '/127.0.0.1/p;=' test.sh