2011-01-18 6 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 ')。 )))お返事ありがとうございました....今度は私の仕事に戻ることができます! – bcrawl

+1

'import re;' regexモジュールをインポートします。 'print( '\ n'.join(...))'リスト内の各要素を出力します。 '...'は改行で結合され、 '...'は're.findall( '([0-9] +)'、open( 'infile.txt')。read())'これは 'infile.txt'を開き、すべての文字を読み込みます。最後に、 '[0-9] +'正規表現を実行してリストを作成し、結合して印刷します。それが働いたら私の答えを受け入れることを忘れないでください:) – orlp

+0

説明とすべての助けをありがとうございました。ほんとうにありがとう。これは私のためにPythonスクリプティングのすばらしい紹介でした。 – bcrawl