我对 perl 和 regex 的经验很少,而且我无法找到我的问题的答案,即:
我有这个命令来查找模式“包”并在找到的模式上方插入一个命令:
perl -i~ -p -e'/package/ and $_ = "/usr/bin/BigHonkingText $_\n$_"' script.sh
script.sh 看起来像这样:
install -package 'Adobe Reader.pkg' -target /
install -package 'Adobe Flash.pkg' -target /
在我运行上面的 perl 命令后,它看起来像这样:
/usr/bin/BigHonkingText install -package 'Adobe Reader.pkg' -target /
install -package 'Adobe Reader.pkg' -target /
/usr/bin/BigHonkingText install -package 'Adobe Flash.pkg' -target /
install -package 'Adobe Flash.pkg' -target /
但我希望它看起来像这样:
/usr/bin/BigHonkingText Adobe Reader.pkg
install -package 'Adobe Reader.pkg' -target /
/usr/bin/BigHonkingTextAdobe Flash.pkg
install -package 'Adobe Flash.pkg' -target /
我想要的是,只有 -package 之后的单引号内的部分写在找到的行上方。这可能吗?