2017-06-08 13 views
0

私はちょうど1行でこのスクリプトを持っているが、私はそれが本当に何をするか理解できませんでした:

sed -i '/$$wf_cdc=/c\$$wf_cdc='"$1"'' /Infa_sharedBDE/PARAMS/pf_CREDITO_CDC.cfg 

それはpf_CREDITI_CDC.cfgファイルのコピーを作成し交換する必要がありますが、 は、このコマンドは何をするのでしょうか?

'/$$wf_cdc=/c\$$wf_cdc='"$1"'' 

$$とは何ですか?

答えて

0

$$はここでは文字通り使用されます。コマンドは次のん:

  • '/$$wf_cdc=/は、行アドレスです:行は文字列$$wf_cdc=が含まれている場合、その後...
  • c\$$wf_cdc='"$1"''も(少なくともGNUでSED)c $$wf_cdc='"$1"''書くことができます:それは置き換えられますパターンスペース(現在の行)に\$$wf_cdc='"$1"''と入力します。個人的には、私は$の両方をエスケープして、行末アンカーとして解釈されないようにしていますが、それがなくても逃げることがあります。
    • '"$1"'' は適切に引用された最初の位置パラメータです:sedコマンドの最後に単一引用符は、その後、この場合には、単一引用符で囲まれた文字列(空の残りを終え、二重引用符で$1を挿入して、私の意見でドロップすることができ)。すべてのすべてで

、これは$$wf_cdc=を含む行を見つけ、<parameter>は、その第一引数としてスクリプトや関数に供給される$$wf_cdc=<parameter>、と交換し、関数やスクリプトで呼び出されます。

-iフラグは、編集中のファイルを「インプレース」に置き換えます。つまり、一時コピーを作成および変更して、そのコピーの名前を元のファイルの名前に変更します。

関連する問題