LINUX.ORG.RU

семь бед ? есть sed

 ,


2

1

Приветствую людей, которые возможно могут помочь.

Есть такая строчка:

bla bla bla ID=1027 bla bla bla

нужно вытащить циферки ...

написал такую штуку:

echo "bla bla bla ID=1027 bla bla bla" | sed -e "s/\(.*ID=\)\([0-9]\{4\}\).*/\2/"
1027

получаю что надо, но неожиданно циферек стало больше 10 и их количество может меняться.

и переписать уже не получается

echo "bla bla bla ID=10232437 bla bla bla" | sed -e "s/\(.*ID=\)\([0-9]\{10\}\).*/\2/"
bla bla bla ID=10232437 bla bla bla

echo "bla bla bla ID=10232437 bla bla bla" | sed -e "s/\(.*ID=\)\([0-9]\{8\}\).*/\2/"
10232437

Буду признателен, если кто то ткнёт мордой в строку мана, где можно почитать об этом.


Ответ на: комментарий от Cancellor

тогда уж

echo "bla bla bla ID=10232437 bla bla bla" | grep -o "[[:digit:]]" | tr -d "\n"
:3

megabaks ★★★★
()
Последнее исправление: megabaks (всего исправлений: 1)
echo "bla bla bla ID=10232437920939393783 bla bla bla" | sed -ne "s/.*ID=\([0-9]*\).*/\1/p"
beastie ★★★★★
()
Ответ на: комментарий от mix_mix

Спасибо большое.

awk, cut и кучу pipe хотелось использовать.

Так и знал что в регулярках что то не дочитал ;)

Aidjek
() автор топика
Ответ на: комментарий от Deleted

про -r в курсе, просто почему то запяматовал про неё.

Aidjek
() автор топика
Ответ на: комментарий от provaton

спасибо, добавил в личную библиотеку

Aidjek
() автор топика

Вот ещё парочка костылей:

echo bla bla bla ID=1027 bla bla bla | cut -d= -f2 | cut -d" " -f1
echo bla bla bla ID=1027 bla bla bla | tr -d '" "na-zA-Z='

А всякие sed'ы, awk'и и esc-последовательности развращают неокрепшую психику юного пользователя unix-подобных операционных систем.

IPR ★★★★★
()

Только цифры?

***** |sed 's/[^0-9]//g'
alozovskoy ★★★★★
()
Ответ на: комментарий от renya

Да, я тоже сюда поржать захожу (плохо смеяться над убогими, но мне на это пофиг).

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.