区切りテキスト ファイルに基づくインポート システムを使用しています。使用されるファイルのサイズは 2 GB 近くになる場合があり、そのファイルのいくつかの行をチェックする必要があります。それで、特定の値の行を(別のファイルに、または単に画面に)出力する方法を知りたいですか?たとえば、行番号 1010123、1002451、994123 などは、ソース ファイルとまったく同じですか?
39478 次
3 に答える
38
行を印刷するN
には、次を使用します。
sed 'Nq;d' file
複数の行を印刷するには (昇順であると仮定します) 例: 994123、1002451、1010123:
sed '994123p;1002451p;1010123q;d' file
q
最後の行番号の後sed
に、1010123 行目に達したときに終了するように指示します。これは、関心のない残りの行をループして時間を浪費するのではなく、大きなファイルで効率的である理由です。
于 2013-02-05T14:11:17.707 に答える
5
多くの Unix ツールでこれを行うことができます。たとえば、次のようにしawk
ます。
# 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
于 2013-02-05T14:11:10.963 に答える
0
パイソンでは:
readThisFile = open('YOURFILE')
outputFile = open('OUTPUT', w)
for actualline, linetext in enumerate(readThisFile):
if actualline == WANTEDLINE
outputFile.write(linetext)
else:
pass
必要に応じて、そのスクリプトを引数で動作するように変更できます (getline.py 1234 など)。
于 2013-02-05T14:16:32.883 に答える