Заменить только символы после символа и перед другим?

Я испытываю реальные трудности с этим. Извинения за noobish вопрос.

Строки, захваченные, приводят к этому:

192.168.1.234/50112(LOCAL\username)

Желаемый вывод:

192.168.1.234-(LOCAL\username)

Я знаю, что могу сделать оператор, который ищет "все символы после /"для первой части, так как эта наклонная черта вправо является первой инстанцией наклонной черты вправо в каждой строке.

Как я действительно заменяю число между / и ( с - в каждой строке?

1
задан 5 April 2018 в 17:55

1 ответ

Если это всегда - цифры, можно сказать

$ echo "$line" | sed 's,/[[:digit:]]\+,-,'
192.168.1.234-(LOCAL\username)

Иначе, если Вы не знаете то, что там, соответствуйте наклонной черте и одному или нескольким символам некруглой скобки

$ echo "$line" | sed 's,/[^(]\+,-,'
192.168.1.234-(LOCAL\username)

Можно на самом деле сделать это правильно в ударе с расширенным globbing:

$ shopt -s extglob
$ echo "${line/\/+([0-9])/-}"
192.168.1.234-(LOCAL\username)
3
ответ дан 7 December 2019 в 12:29

Другие вопросы по тегам:

Похожие вопросы: