2014-05-20 82 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

相關問題