nodejs'exec'命令不't执行'sed'命令正确
nodejs 'exec' command doesn't execute 'sed' command properly
我有一个文件,我想在其中扫描它,找到字符"{"并创建一个新行,然后在新行上添加一个IP并在行尾添加一个半古龙水,然后写入一个配置文件。
当从shell运行时,我可以使用以下sed命令来实现这一点:
sed -i 's/{/&'n1.1.1.1;/g' /tmp/test.conf
内部测试conf:
acl testACL{
};
shell中命令的输出显示:
acl testACL{
1.1.1.1;
};
工作完美!现在的问题是当我让nodejs执行它时:
var sys = require('sys');
var exec = require('child_process').exec;
function puts(error, stdout, stderr) { sys.puts(stdout) };
exec("sed -i 's/{/&'n1.1.1.1;/g' /tmp/test.conf",puts);
return 0;
当我在控制台中运行命令时:'nodejs-test.js'
我得到了空白输出,当我检查文件时,文件"test.conf"没有被更改!为什么?
如果你认为"这是权限问题!"我让nodejs-exec命令将基本的echos写入测试配置文件,它运行得很好。
我也尝试过"shelljs"模块,但没有成功。我已经尝试了无数个小时的组合,但都没有成功!我很困惑。
我认为您需要将'n
作为''n
进行转义。现在,它被解析为命令中的一个文本换行符,这把它搞砸了。
相关文章:
- 当我点击jsf中的primefaces命令按钮时,如何获得点击事件
- 如何使用Socket.io将命令从客户端发送到服务器
- 通过命令行/批处理文件打开页面时,将javascript代码注入Google Chrome
- 命令行中的Uglify js;不要弄乱变量名
- http.listen()在运行时接受终端命令
- 如何在没有单词的情况下从命令行运行Node.js程序'节点'
- 如何将给定的curl命令复制为jquery ajax请求
- 打开抽屉的Javascript打印命令
- Web控制台命令不起作用
- 如何使用脚本在jsf中执行命令按钮的自动点击
- 类似HTML命令行的文本框
- 命令“;节点"做
- 节点JS express和控制台输出到命令行与浏览器
- 如何将.json文件作为参数导入.js文件并使用命令行启动它
- 编辑弹出窗口的HTML的单击命令
- 为什么我的关键命令不起作用
- Javascript不能在一个命令中使用函数参数
- 最小化CSS/JS文件,并使用命令行创建一个文件
- nodejs'exec'命令不't执行'sed'命令正确
- 使用 sed 命令替换 javascript 中的变量值