如何让 sed 替换以一系列数字开头的行的一部分

如何让 sed 替换以一系列数字开头的行的一部分

我怎样才能让 sed 或 perl 对以下行进行以下更改:

41 * * * * /vend/oracle/util/bin/rmp_udump.ksh

到:

##SHUTDOWN_MAINT##41 * * * /vend/oracle/util/bin

对于所有以 [0-9] 开头的行。在 vi 中这有效:

%s/^[0-9].*/##SHUTDOWN_MAINT##&/

答案1

对于相当于您的vi命令,在perl

perl -pi -e 's/^\d/##SHUTDOWN_MAINT##$&/' your-file

或者:

perl -pi -e 's/^(?=\d)/##SHUTDOWN_MAINT##/' your-file

或者:

perl -pi -e '$_ = "##SHUTDOWN_MAINT##$_" if /^\d/' your-file

相关内容