2016-07-12 2 views

ответ

2

Это можно сделать с помощью двух подстановок, сначала вставить «сервер» (это «сервер», за которым следует пробел) сразу после всех вхождений начала строки или запятой, а во-вторых, заменить все вхождения запятая или конец строки с точкой с запятой.

sed -E 's/(^|,)/&server /g; s/(,|$)/;/g;' <<<'192.168.1.100,192.168.1.101,192.168.1.102'; 
## server 192.168.1.100;server 192.168.1.101;server 192.168.1.102; 
1

Делайте это в три этапа:

  1. Заменить запятые полуколоннами
  2. Добавить терминал semicolumn
  3. Заменить каждый IP-адрес прекращается с semicolumn по тому же адресу с префиксом server.

sed 's/,/;/g ; s/$/;/ ; s/([0-9.]*;)\;/server \1/g'

1

Вот простой sed решение с использованием одной замены:

sed 's/\([^,]*\),\?/server \1;/g' 
Смежные вопросы