2011-01-18 2 views
0

Привет всем, У меня есть файл с информацией, подобной приведенной ниже. Я хочу извлечь номера из записей. Может ли кто-нибудь дать мне awk или sed oneliner, если это возможно? Может быть, выложили в файл? Это действительно помогло бы мне. Я нахожусь на ubuntu, поэтому у меня есть утилиты linux.Как извлечь данные из файла

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

<product_id>101747</product_id> 
<product_id>2847549</product_id> 
<product_id>149833</product_id> 
<product_id>123380</product_id> 
<product_id>66334</product_id> 
<product_id>66475</product_id> 
<product_id>123387</product_id> 
<product_id>6266040</product_id> 
<product_id>3480755</product_id> 
<product_id>6529572</product_id> 
<product_id>22852</product_id> 

ответ

2

Python Oneliner:

python -c "import re;print('\n'.join(re.findall('([0-9]+)',open('infile.txt').read())))" > outfile.txt 

Изменение inFile.txt и outfile.txt.

Пример вывода:

101747 
2847549 
149833 
123380 
66334 
66475 
123387 
6266040 
3480755 
6529572 
22852 
+0

Привет, спасибо за ответ. Это сработало! Не могли бы вы в нескольких словах объяснить, как он ее извлек? Я думаю, если бы вы могли это сломать ... re; print ('\ n'.join (re.findall (' ([0-9] +) ', open (' infile.txt '). Read()))) Большое спасибо за ответ .... Теперь я могу вернуться к своей работе !! – bcrawl

+1

'import re;' импортирует модуль regex, 'print ('\ n'.join (...))' выводит каждый элемент в списке '...', соединенный с новой строкой, и '...' 're.findall ('([0-9] +)', open ('infile.txt'). read())' который открывает 'infile.txt' и читает все символы из него. Наконец, мы делаем '[0-9] +' regex на нем, извлекая все числа, создающие список, который затем объединяется и печатается. Пожалуйста, не забудьте принять мой ответ, если он сработает :) – orlp

+0

Большое спасибо за объяснение и всю помощь. Я очень ценю это. Это было замечательное введение в скрипты python для меня. – bcrawl

Смежные вопросы