如何使用 sed 通过 ssh 修改远程文件?
How can i modify a remote file over ssh with sed?
我正在尝试在远程服务器上的 JS 文件顶部添加一行
我想要 运行 的命令是:
sed -i "1i\const test = require(\'../../../test/test.json\');" /opt/test.js
所以我尝试了以下方法:
ssh user@host "sed -i "1i\const test = require(\'../../../test/test.json\');" /opt/test.js"
由于“(”和“)”,这给了我一个错误,所以我在它们之前添加了一个“\”:
ssh user@host "sed -i "1i\const test = require\(\'../../../test/test.json\'\);" /opt/test.js"
但是我仍然得到错误:
bash: -c: line 0: syntax error near unexpected token `('
我该如何解决这个问题?
与其使用 sed -i
(仅在幕后管理一个临时文件),不如使用 ed
并将脚本(通过 ssh
)提供给 ed
'标准输入。
ssh user@host 'ed /opt/test.js' <<'EOF'
1i
const test = require('../../../test/test.json');
.
wq
EOF
我正在尝试在远程服务器上的 JS 文件顶部添加一行 我想要 运行 的命令是:
sed -i "1i\const test = require(\'../../../test/test.json\');" /opt/test.js
所以我尝试了以下方法:
ssh user@host "sed -i "1i\const test = require(\'../../../test/test.json\');" /opt/test.js"
由于“(”和“)”,这给了我一个错误,所以我在它们之前添加了一个“\”:
ssh user@host "sed -i "1i\const test = require\(\'../../../test/test.json\'\);" /opt/test.js"
但是我仍然得到错误:
bash: -c: line 0: syntax error near unexpected token `('
我该如何解决这个问题?
与其使用 sed -i
(仅在幕后管理一个临时文件),不如使用 ed
并将脚本(通过 ssh
)提供给 ed
'标准输入。
ssh user@host 'ed /opt/test.js' <<'EOF'
1i
const test = require('../../../test/test.json');
.
wq
EOF