我有一个名为praveen.pl
.该脚本包含许多行,其中一行是:
$input_store_nbr = "00100";
里面的数字"nnnnn"
将由手动测试人员根据他们的输入进行更改。所以,我想找到这一行并"nnnnn"
根据我的输入更改它。
例如,如果我的输入是10000
这一行,praveen.pl
则应更改为
$input_store_nbr = "10000";
如果下次我想将其更改为此20000
行,则应更改为
$input_store_nbr = "20000";
praveen.pl
我正在尝试自动执行文件中的商店编号编辑。
答案1
如果您只是必须修改此脚本,但由于某种奇怪的原因无法修改它以接受命令行参数,您可以尝试以下操作:
new_val=5000
sed -e "s/\$input_store_nbr = \"[0-9]+\";/\$input_store_nbr = \"$new_val\";/" src_file > tmp_file
mv tmp_file src_file
或者如果您有sed
支持它的文件(例如带参数的 GNU 或 BSD),您可以使用该-i
标志sed
而不需要(显式)临时文件。
我仍然认为你最好修改一次源脚本(因为已经修改了它)来执行以下操作:
$input_store_nbr = $ARGV[0];
然后使用新数字作为第一个命令行参数来调用它,就像您传递给脚本sed
来重写文件一样。