1

grepたとえば、行 1000 から行 2000、行 1000 まで、または行 1000 から大きなファイルの特定の部分を取得するにはどうすればよいですか? ファイルを小さなファイルに分割したくありません。

4

3 に答える 3

2

sed@ravoori によるソリューションのマイナーな改善として、を にリファクタリングgrepしますsed

sed '1000,$/pattern/!d;2000q' file.txt

変数にパターンがある場合は、二重引用符を使用します。

sed '1000,$/'"$pattern"'/!d;2000q' file.txt

または Awk で同等に:

awk 'NR==2000{exit(0)}NR>=1000 && /pattern/' file.txt

または変数を使用して

awk -v pat="$pattern" 'NR==2000{exit(0)}NR>=1000 && $0~pat' file.txt
于 2013-05-16T16:33:51.480 に答える
1

私は提案します

head -2000 FILE.TXT | tail -1000 | grep XXX

head巨大なファイルを読み取る必要がなく、最初の数千行だけを読み取る必要があるため、最も適切なソリューションとして。それは本質的qsedソリューションで何をするかを達成します。

于 2013-05-16T17:25:51.953 に答える