簡體   English   中英

如何使用 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM