0
私はあなたが私を助けることを願って...私は、プログラミング上の新たなんだと私は簡単に疑問を持っているが、私は他の質問にこれに対する答えを見つけることができません:)bash NR with awk。残りの行を印刷するには?
私はtemplate.conf
ファイルと呼ばれているし、私が必要多くのID.confファイルがそのテンプレートの2行(24と49)を変更するようにします。
awk -v Id=${Id} '(NR==24){$3=${Id}".txt"} (NR==49){$3="Input_"${Id}".txt"}' \
template.conf > ${Id}.conf
しかし、これは行24と49だけを出力します。テンプレート文書の残りの部分ではありません...
どうすればこの問題を解決できますか?
書かれているとおり、何も印刷されません。実際に行を印刷するには 'awk'と言う必要があります。最後の '}'の後に引用符の中に '1 'を追加すると、そのトリックが行われます。 –
また '()'は必要ありません。また、 '$ {Id}'は値が 'Id'のフィールドです(おそらく文字列なので、デフォルトは0になります)。 awkのVarsはちょうど名前、すなわちIdです。 – 123
awkでは、変数の接頭辞として '$'を使用しないので、 'Id'を書くだけで変数Idの値に展開されます。 '$ 1'は最初のフィールドの値を参照します:' a = $ id '' $ { 1; $(a) ' – andlrc