先介绍些sed -n的应用:
sed命令中p能实现打印匹配行的功能。我们可以实际看下sed命令带-n和不带-n情况下有什么不同。
sed -n "1p" test2.sh:带-n选项的话,只打印test2.sh脚本第一行匹配行。
sed "1p" test2.sh:不带-n的话,不仅打印第一行匹配行,还打印输出test2.sh脚本的全部内容。
sed -n还可以打印文件的范围,比如打印test2.sh脚本的前两行,我们就可以执行以下命令:sed -n "1,2p" test2.sh,就可以直接打印前两行。
sed命令可以打印匹配模式行,比如打印test2.sh脚本匹配tr的行,就可以执行以下命令:
sed -n /tr/p test2.sh。
remark:如果不带-n的话,除了打印匹配行外,还会打印脚本的全部内容。
sed -e的应用。只有当sed命令传递多个编辑命令式,才会使用到-e。比如:我想打印/tr/匹配行,并且打印匹配行所在的行号,此时存在多个sed参数,就要用到-e了。
sed -n -e /tr/p -e /tr/= test2.sh
每个参数前都要带上-e:
sed a\追加命令,命令格式为:sed ’指定地址a\追加内容‘ 目标文件
这个追加内容在匹配行的下一行,只会输出到标准输出,原文件内容是不变的,例如在test2.sh脚本的/tr/所在的匹配行的下一行添加“#hello”内容,可需要执行:
sed '/tr/a\#hello' test2.sh
一定不要忘记单引号.
还有一个sed i\的追加命令,命令格式为:sed ’指定地址i\追加内容‘ 目标文件,跟a\不同,i\追加是在指定位置的上一行追加命令