LINUX.ORG.RU

sed - найти первый / в строке

 


0

1

Приветствую.

Есть такое выражение:

a/b/c/d
Здесь b заранее неизвестно.
Нужно сделать такую замену:
A/B/c/d

Пытаюсь сделать так:
echo a/b/c/d | sed "s/a\/.*\//A\/B\//"

Получаю:

A/B/d
Подскажите, чего тут не хватает, как найти первый слеш после b.


$ echo a/b/c/d | awk -F/ '{print "A/B/" $3 "/" $4}'
A/B/c/d
$
anonymous
()
Ответ на: комментарий от anonymous

Да, то что нужно, спасибо.

Первый вариант с использованием awk работает только тогда, когда значение B подставляется напрямую, а не через переменную, типа $C, где С=...

carabo
() автор топика
Ответ на: комментарий от carabo
$ echo a/b/c/d | awk -v C=fakeB -F/ '{print "A/" C "/" $3 "/" $4}'
A/fakeB/c/d
$
anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.