LINUX.ORG.RU

удалить из вывода ненужное

 


3

1
$ cat /tmp/install.rdf | grep em:version
                <em:version>3.6.4</em:version>

такой вопрос, не подскажите, как из вывода удалить <em:version> и </em:version>, что бы цифры остались? (желательно, одной командой)

★★★★★
sed -r 's/^\s*<em:version>([0-9.]+).*/\1/' /tmp/install.rdf
Deleted
()

awk -F '[<>]' '/em:version/ {print $3}'

sdio ★★★★★
()
 
echo '<em:version>3.6.4</em:version>' | cut -f2 -d">" | cut -f1 -d"<"
IPR ★★★★★
()
Ответ на: комментарий от Lavos

ага, вот как оно делается), я как раз что-то подобное пытался сделать, но в один str при echo, спасибо

--

всем, спасибо, все же от sdio воспользовался при помощи awk, все работает

NK ★★★★★
() автор топика
Последнее исправление: NK (всего исправлений: 1)
Ответ на: комментарий от anonymous

Ага, даже так... Интересно, раньше не было, уже привык собирать. Теперь ждем pcrebash :)

YAR ★★★★★
()
Ответ на: комментарий от alozovskoy

Оу, надо же, то что надо, спасибо

└─$ echo "<em:version>3.6.4</em:version>" | sed 's/[^0-9.]//g'
3.6.4

Один только недостаток всплыть может, если в этот список цифра или точка попадет, которая входить будет в скобки < >

NK ★★★★★
() автор топика
Ответ на: комментарий от YAR

Перловые регэкспы не везде есть

$ echo 'blabla<em:version>3.6.4</em:version>blabla' | sed -r 's/[^<]*<(.*)>.*/\1/;s/<.*//;s/.*>//'
3.6.4

тоже самое можно и на grep, но лень выписывать.

drBatty ★★
()
Ответ на: комментарий от ksevelyar

grep -Eo '[0-9.]+'

насколько я понял условие, что будет между >< неясно. Да и вообще цифры и точка - слишком распространённые символы.

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