我正在寻找一个 sed 命令来在匹配模式的行之后添加指令(如果它之前的行也包含一些字符串)。很难说,所以这是输入:
if [ $coderet -ne 0 ];then
# $UXEXE/uxset msg "*** KO *** voir log systeme ***"
exit 1
fi
if [ $coderet -ne 0 ];
then
# $UXEXE/uxset msg "*** KO *** voir log systeme ***"
exit 1
fi
我想在与
echo ""
匹配的行之后添加 # $UXEXE/uxset msg
,如果它之前的行包含字符串 then
,那么预期结果将如下所示:
if [ $coderet -ne 0 ];then
# $UXEXE/uxset msg "*** KO *** voir log systeme ***"
echo ""
exit 1
fi
if [ $coderet -ne 0 ];
then
# $UXEXE/uxset msg "*** KO *** voir log systeme ***"
echo ""
exit 1
fi
预先感谢您的帮助!
我尝试了很多方法但没有什么结果!对不起!
awk 中的解决方案很简单:
awk '{
print
if (prev_had_then && index($0, "# $UXEXE/uxset msg"))
print " echo \"\""
prev_had_then = /then/
}' file
sed 并不复杂:
sed '
/then/ {
N
/# \$UXEXE\/uxset msg/ a\ echo ""
}
' file