找到并替换line sed旧版本

时间:2014-10-17 16:20:06

标签: regex bash sed

我正在尝试查找并替换服务器文件中的端口号(因为我的所有协作者都使用相同的服务器),所以我们需要不同的端口...我试图像这样使用sed:{{1将端口从5000更改为3000.当我尝试在我们的rhel服务器上执行此操作时,我试图替换的代码的实际代码行是文件server.js中的sed -i -e '/var port./var port = 3000;/' server.js(我没有root access to)我收到此消息var port = 5000;

我只是没有使用正确的正则表达式?或服务器是否使其不方便?

2 个答案:

答案 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