私は区切られたテキストファイルに基づいてシステムをインポートします。使用されるファイルは、時には2Gb程度になることがあり、そのファイルからいくつかの行をチェックする必要があります。 私はどのように特定の値の行を出力することができますか?例えば。行番号1010123,1002451,994123など、ソースファイルとまったく同じですか?UNIXの巨大なテキストファイルから特定の行を得るには?
答えて
はラインN
を印刷するには、使用:
sed 'Nq;d' file
は、複数行を印刷するには(彼らはしていると仮定昇順) 994123、1002451、1010123:
sed '994123p;1002451p;1010123q;d' file
q
最後の行番号ではなく、私たちが興味を持っていない残りの行をループして時間を無駄に、それは1010123thラインに達したときに終了することsed
に指示した後であること。大容量ファイルで効率的な理由Pythonで
あなたはawk
で、たとえば、多くのUnixツールでこれを行うことができます。
# print first 5 lines with awk
awk 'NR>=1&&NR<=5{print}NR>=6{exit}' file
# print selection of lines
awk 'NR==994123||NR==1002451||NR==1010123{print}NR>1010123{exit}' file
がどのように 'sed' /' awk'のような非常に大きなファイルを上行ってない(getline.py 1234のような)の引数で動作するようにそのスクリプトを修正することができたい場合彼が彼の質問で言及したもの(〜2GB)? –
行番号は連続していません。最初のN番目または最後のN番目ではありません。それらはエラーのある行だけです。私はテーブルの行番号を持っているだけで、特定の行番号を出力したいだけです。 – BogdanM
@BogdanMこれについては2番目の 'awk'の例を参照してください(ドッグベットの答えはどのようにsedで表示されるのですか)私は印刷範囲もあなたにとって有益だと思っていました。 –
:
readThisFile = open('YOURFILE')
outputFile = open('OUTPUT', w)
for actualline, linetext in enumerate(readThisFile):
if actualline == WANTEDLINE
outputFile.write(linetext)
else:
pass
あなたは
質問は 'unix'だけタグ付けされているので、' outputFile.write(linetext) 'が出力された後に終了する方が効率的です。OPに' Python'があります。 –
Pythonが利用できるかどうかは言えません(彼は、どの言語を書いたのか解説しませんでした)。 そして、行を止めるために:うん、することができますが、私のスクリプトは "それを使用する準備ができて、ちょうどそれをコピー&ペースト"スクリプトではありません、それはどのように行うことができるヒントです – chill0r
- 1. mySqlの巨大なテキストファイル
- 2. C#のテキストファイルから特定の行を取得するには?
- 3. 巨大なファイルから特定のテキストを削除
- 4. UNIXのテキストファイルから特定のテキストを抽出する
- 5. 大きなテキストファイルの特定のパーセンタイルに行を印刷する
- 6. 巨大なテキストファイルの相関行列を準備する
- 7. 巨大なテキストファイルを検索する
- 8. unixのファイルから特定の行を削除するには?
- 9. 巨大なテキストファイルの行を4のグループで読む
- 10. テキストファイルの行末をDOSからUnixに変換するには?
- 11. テキストファイルから特定のコンテンツを取得するには#
- 12. 巨大なガベージオブジェクトの取得
- 13. 巨大なテキストファイルはどこにありますか?
- 14. 巨大なファイルを生成するUnix上のGhostscript
- 15. 巨大なCSVファイルから情報を取得するための巨大なXMLファイルの解析
- 16. 巨大なファイルから
- 17. Pythonの巨大なcsvファイルから行を削除する
- 18. 特定の数字だけをbashの巨大な数値に保つには?
- 19. Java - 2つの巨大なテキストファイルを比較する
- 20. テキストファイルからの読み込みより巨大な.cppファイルですか?
- 21. ウェブサイト上に巨大なテキストファイルを表示する
- 22. 500万行以上のhadoopから巨大なcsvファイルをダウンロード
- 23. 巨大なデータからのメテオ角オートコンプリート
- 24. UNIX - 特定の行を削除する
- 25. Javaのテキストファイルから特定の行を読み取る
- 26. Python:テキストファイルから特定の範囲の行を出力する
- 27. Railsの巨大なテーブルからすべての行を効率的に取得する方法は?
- 28. 反復せずに巨大なデータテーブルから行を削除するには?
- 29. 巨大なテキストファイルをサーバに保存したビューア(ウェブベース)
- 30. Python:巨大なテキストファイルをメモリに読み込む方法
ありがとうございます。それは魅力的に働いた:) – BogdanM