sed将last_updated:“ 1494099933”替换为last_updated:“ 1539339683412”(时期,通过命令替换和双引号引起来)

时间:2018-10-12 10:30:16

标签: sed

我正在通过以下命令获取新纪元时间:node -e 'console.log(Date.now())'

(在撰写本文时)给了我1539339683412

我要在其中的许多yml文件中将日期时间1494099933更改为1539339683412

目前,我的sed(在Mac OS X上)用于1个文件的命令是:

sed -i .bak "s/last_updated.*\".*\"/last_updated: $(node -e 'console.log(Date.now())')/g" ingress.yml

这将其替换为:

last_updated: 1539339683412

问题是双引号丢失了,为了学习sed,我想将其替换为:

last_updated:"1539339683412"

我该怎么做?

我尝试添加转义引号,例如\",例如: sed -i .bak "s/last_updated.*\".*\"/last_updated: \"$(node -e 'console.log(Date.now())')/g\"" ingress.yml

这给出了错误:sed: 1: "s/last_updated.*".*"/la ...": bad flag in substitute command: '"'

我也尝试过:sed -i .bak 's/last_updated.*\".*\"/last_updated: "$(node -e "console.log(Date.now())")"/g' ingress4.yml

结果是:last_updated: "$(node -e "console.log(Date.now())")"

1 个答案:

答案 0 :(得分:1)

最后一个引号<form action="" id="form" onsubmit="return checkform(this)"> <label for="naam"><strong>Naam*</strong></label><br> <input type="text" id="naam" name="naam" value="Tom" required/> <br><br> <label for="email"><strong>Email*</strong></label><br> <input type="text" id="email" name="email" value="tom@gmail.com" required/> <br><br> <label for="telefoonnummer"><strong>Telefoonnummer</strong></label><br> <input type="text" id="telefoonnummer" name="telefoonnummer" value="020-694-0232" readonly="readonly"/> <br><br> <label for="textarea"><strong>Uw vraag</strong></label><br> <textarea id="textarea" type="textarea" rows="10" cols="50" value="Hoe kan ik een vluchtnummer toevoegen?"required/></textarea> <br><br> <input type="submit" value="Versturen" onclick="alertpopup()"> </form> 之前的结束报价。

/

通知sed -i .bak "s/last_updated.*\".*\"/last_updated: \"$(node -e 'console.log(Date.now())')\"/g" ingress.yml ...Date.now())'\"/g"

替换字符串是最后两个斜杠(或更通常是分隔符)之间的填充物;您不必为此使用斜杠)。最终分隔符之后的所有内容都是...Date.now())'/\"g"替换命令的选项(例如s///可以全局替换;如果您希望每行不超过一个匹配项,则在这里是多余的)。