パターンを検索し、特定の文字列をその行に追加する方法の例をいくつか見てきました。私が達成しようとしていることは、少し違うと思います。引数を取り、ファイルで文字列を検索し、見つかった場合は、文字列が見つかった行の末尾に引数を追加する簡単なスクリプトを作成しています。次のようにして、このスクリプトを呼び出します。
$bash- ./myscript.sh arg1 [arg2] ...
コードについては、次のようなものがあります。
for ARGS in $*
do
gawk '{a[NR]=$0}/<patter to be found>/{a[NR]=a[NR] $ARGS}END{for(i=1;i<=NR;i++)print a[i]}' $ORIGFILE > $DESTFILE
cp $DESTFILE $ORIGFILE
done
問題は、一重引用符で変数が展開されず、それを実現するための正しい構文が見つからないことです。何も展開されないか、「$0」が展開されて構文エラーがスローされます。
助言がありますか?
ありがとう!