Вопрос:

Заменить подстроку с помощью sed

shell sed sh

28272 просмотра

2 ответа

337 Репутация автора

У меня есть такая строка:

test:blabla

И с помощью sed я хочу заменить то, что после ':', чем-то другим.

Я могу заменить слово, но не после слова «:». Я искал в интернете ответ, но ничего не нашел.

Любая помощь ?

Автор: Yanis Boucherit Источник Размещён: 07.01.2013 11:10

Ответы (2)


11 плюса

66914 Репутация автора

Решение

Использование: sed 's/:.*/:replaceword/'

$ echo test:blabla | sed 's/:.*/:replaceword/'
test:replaceword

Или в ситуации , test test:blabla testкогда вы только хотите , чтобы заменить слово после :использования sed 's/:[^ ]*/:replaceword/':

$ echo "test test:blabla test" | sed 's/:[^ ]*/:replaceword/'
test test:replaceword test

# Use the g flag for multiple matches on a line
$ echo "test test:blabla test test:blah2" | sed 's/:[^ ]*/:replaceword/g'
test test:replaceword test test:replaceword
Автор: Chris Seymour Размещён: 07.01.2013 11:13

3 плюса

34480 Репутация автора

> echo $SER2
test:blabla
> echo $SER2 | sed 's/\([^:]*:\).*/\1replace/g'
test:replace
>
Автор: Vijay Размещён: 07.01.2013 11:14
Вопросы из категории :
32x32