というスクリプトがありますpraveen.pl
。このスクリプトには複数の行が含まれており、そのうちの1つは次のとおりです。
$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
次に、ファイルを再構築するためにスクリプトに渡すのと同じように、最初のコマンドライン引数として新しい番号を使用して呼び出します。