我正在尝试查找并替换服务器文件中的端口号(因为我的所有协作者都使用相同的服务器),所以我们需要不同的端口...我试图像这样使用sed:{{1将端口从5000更改为3000.当我尝试在我们的rhel服务器上执行此操作时,我试图替换的代码的实际代码行是文件server.js中的sed -i -e '/var port./var port = 3000;/' server.js
(我没有root access to)我收到此消息var port = 5000;
我只是没有使用正确的正则表达式?或服务器是否使其不方便?
答案 0 :(得分:0)
如果您尝试进行查找和替换,请不要忘记使用s
启动命令。此外,-e
不是必需的(但它不应该导致任何问题)。较早版本的sed
不支持文件的就地修改,因此您应自行覆盖该文件:
sed 's/var port.*/var port = 3000;/' server.js > tmp && mv tmp server.js
可能需要使正则表达式更具体,但这取决于文件其余部分的内容。
答案 1 :(得分:0)
尝试使用以下 如果您想更改特定端口号s/pattern/replacement/modifier
格式的sed -i 's/var port *= *[0-9]\+/var port = 3000/' server.js
5000
,请使用此sed -i 's/var port *= *5000/var port = 3000/' server.js