【发布时间】:2015-12-13 15:43:09
【问题描述】:
我已经阅读了有关该主题的多个其他答案,但似乎没有一个可以解决我的问题。
我刚收到an answer to my other question,了解如何在一个长的单行 .json 文件中为 2 个文本字符串添加前缀。
命令是
sed -i 's~"libraries"~"pack/\0"~; s~"objects"~"pack/\0"~' /var/www/html/pack/file.json
它包含单引号和双引号,以及正斜杠和双斜杠,使其他答案失败。
我试过了
ssh ip<<'EOF'
sed -i 's~"libraries"~"pack/\0"~; s~"objects"~"pack/\0"~' /var/www/html/pack/file.json
EOF
ssh ip 'sed -i '"'"'s~"libraries"~"pack/\0"~; s~"objects"~"pack/\0"~'"'"' /var/www/html/pack/file.json'
和everything on this page,可能还有其他一些来自这里的答案,没有运气。
带有EOF 的第一个命令打开的屏幕与我在简单ssh ip-ing 时得到的屏幕相同;远程命令提示符。 Zaiste.net 页面中的其他一些命令也会发生同样的情况。
请注意,sed 命令是从终端中执行的脚本运行的。因此,多行答案是可以的。
还有,
ssh ip 'sed -i '"'"'s~"libraries"~"pack/\0"~; s~"objects"~"pack/\0"~'"'"' /var/www/html/pack/file.json'
返回 EXTRA 在我尝试添加前缀的“对象”和“库”字符串周围的引号,例如
"minimumVersion":2,"librariesLocation":"pack/"libraries"","objectsLocation":"pack/"objects"",
如果可以解决此命令的额外引号问题,那就是我的问题的解决方案。
【问题讨论】:
-
有时这很简单:
scp script server:script; ssh server 'bash script'