以前の10行が特定の列にある大きなファイルからすべての行を印刷したいとします(下の例では、列9は値<を有する。私はファイル全体をメモリに保存したくありません。私は次のように、この目的のためにAWKを使用しようとしています:以前のN行が特定の条件を満たしている大きなファイルからすべての行を印刷する
awk 'BEGIN{FS=","}
{
for (i=FNR,i<FNR+10, i++) saved[++s] = $0 ; next
for (i=1,i<s, i++)
if ($9<1)
print saved[s]; delete saved; s=0
}' file.csv
このコマンドの目標は10の前の行を保存することです、そして、これらの行の各列9は私の基準を満たしていることを確認することは、その後の印刷します現在の行。これに関する助け、またはこれを行うためのより効率的な方法に関する提案は、非常に感謝しています!ここで
カンマの代わりに**セミコロン**を使用して 'for(..; ..; ..)'を使用してください。 –