2

Посоветуйте пожалуйста как убрать только второе "." персонаж из номера версии с awk

Мне нужно соответствовать синтаксису для Linux и Solaris

Я пишу

  sed "s'/\./ /g'" - 

но этот синтаксис удаляет все "." из номера версии

например (номер версии раньше)

 34.34.55.4

после седь манипуляций будет

 34.34 55.4

3 ответа3

3
echo -e '1.2.3.4\n2.3.4\n5.6.7.8' | sed 's/\([^.]*\.[^.]*\)\./\1 /'

Часть в фигурных скобках будет соответствовать «что-то без точки, точка, что-то без точки». \1 в тексте замены будет ссылаться на этот субматч.

Тем не менее, другое решение, представленное, возможно, гораздо более элегантно ;-)

2
$ sed 's/\./ /2' <<<'34.34.55.4'
34.34 55.4
2

Использование GNU Awk:

Команда:

awk '$0 = gensub( /\./, " ", 2 )' <<<"34.34.55.4"

Выход:

34.34 55.4

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .