什么是sed -i' / $$ wf_cdc = / c \ $$ wf_cdc ='" $ 1"''意思?

时间:2017-06-08 11:19:14

标签: sed

我只有一行这个脚本,但我无法理解它的真正含义:

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"''

什么是$$

1 个答案:

答案 0 :(得分:0)

字面上使用

$$。该命令执行以下操作:

  • '/$$wf_cdc=/是一个行地址:如果一行包含字符串$$wf_cdc=,那么......
  • c\$$wf_cdc='"$1"''也可以写成c $$wf_cdc='"$1"''(至少在GNU sed中):它用\$$wf_cdc='"$1"''替换模式空间(当前行)。就个人而言,我两次都逃脱$以确保它不会被解释为行尾锚点,但有时你会在没有它的情况下逃脱。
    • '"$1"''是第一个正确引用的位置参数:sed命令的单引号,然后在双引号中插入$1,然后完成单引号字符串的其余部分(在这种情况下为空,并且在我看来可以放弃。)

总而言之,这将在函数或脚本中调用,找到包含$$wf_cdc=的行并将其替换为$$wf_cdc=<parameter>,其中<parameter>被提供给脚本或函数它的第一个论点。

-i标志取代正在编辑的文件&#34;就位&#34;,即制作和修改临时副本,然后将该副本重命名为原始文件的名称。