@dronmaxman
VoIP Administrator

Как найти слово в строке и перенести или скопировать его в начало строки?

Имеем Linux, файл со строками. Необходимо скопировать или перенести цифровую часть разделенную точками в начало строки.
bla bla 23.33.72 bla
bla bla la na 45.34.33 bla en
bla la na 45.34.33 bla urjt

Необходимо получить
23.33.72 bla bla 23.33.72 bla
45.34.33 bla bla la na 45.34.33 bla en
41.65.32 bla la na 45.34.33 bla urjt
  • Вопрос задан
  • 282 просмотра
Решения вопроса 1
vaut
@vaut
Найти числа можно так: [\d.]*
далее захватываешь круглыми скобками и добавляешь как хочешь: конкатенацией, заменой или еще как.
например так:
s/.*?([\d.]+).*/$1 $&/
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@abcd0x00
[guest@localhost ~]$ text="\
> bla bla 23.33.72 bla
> bla bla la na 45.34.33 bla en
> bla la na 45.34.33 bla urjt
> "
[guest@localhost ~]$ 
[guest@localhost ~]$ echo -n "$text"
bla bla 23.33.72 bla
bla bla la na 45.34.33 bla en
bla la na 45.34.33 bla urjt
[guest@localhost ~]$ 
[guest@localhost ~]$ echo -n "$text" | sed 's/.* \([0-9]*\.[0-9]*\.[0-9]*\) .*/\1 &/'
23.33.72 bla bla 23.33.72 bla
45.34.33 bla bla la na 45.34.33 bla en
45.34.33 bla la na 45.34.33 bla urjt
[guest@localhost ~]$
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы