2014-05-20 111 views
-1

情况如下:我使用的VPS主机在安装时会生成随机SSH端口,并且我有一个configure.sh文件,其中包含例如此行更改SSH端口:Shell脚本:在不知道原始值的情况下更改文本文件

sed -i 's/Port 22/Port 1337/' /etc/ssh/sshd_config 

这个伟大的工程,但我需要设置了当前SSH端口sed命令,显然我不知道它时,它就会随机生成的。

问候, Akitoyo

+0

样品输入和expexted ouptut请。 –

+0

使用左上方的编辑工具对代码和数据进行格式化,使其可读。任何澄清问题描述的内容都应该成为问题的一部分,而不是评论。祝你好运。 – shellter

+0

只是做了谢谢! – Akitoyo

回答

1

这里是一个办法做到这一点:

sed -i 's/Port [0-9]*/Port 1337/' /etc/ssh/sshd_config 

它将改变任何Port xxx其中xxx是任何数量Port 1337

+0

这也将接受端口后的零数字;我不确定这是否重要,但使用'[0-9] [0-9] *'或'[0-9] \ {1,\}'可能会更安全(第一个选项实际上是一个字符更短)。 –

+0

@JonathanLeffler关于'sed's/Port [^] */Port 1337 /'' – Jotne

+0

感谢您的支持,是否可以更改sed命令,以便它甚至可以接受5位数的端口?例如。它只是生成端口26832 – Akitoyo

相关问题