私はAWKを初めて使用します。
大きなテキストファイル(> 3GB)があります。AWK行コマンドを使用して、選択した行(行#62、#152、および153)をこの順序で抽出/印刷し、ファイルのレコードの終わりまで217行ごとに繰り返します。
ネットから検索して学ぼうとした。以下を試してみましたが、機能していないようですが、
awk '{(for (i=62; i<=NR; i=i+217)||for (i=62; i<=NR; i=i+217)||for (i=62; i<=NR; i=i+217)); print}' file.txt
と
count=62||152||153
awk '{if (++count%217==0) print;}' file.txt
私にいくつかの指針を与えるのを手伝ってくれるか、助けになるかもしれないウェブに私を導いてくれませんか。
私はこのhttp://www.catonmat.net/blog/wp-content/uploads/2008/09/awk1line.txtを使用して学習しています。
rgdsサラバナンK
アップデート#1-2012年9月21日-10.40pm
試してみました
awk 'NR == 62 || NR == 152 || NR == 153 || NR % 217 == 0 {print $0;}' file.txt
行#62、#152、および#153を印刷できますが、次のすべての反復(#(62 + 217)、#(152 + 217)、#(153 + 217)など)を印刷できるわけではありません。
以下も試してみましたが、うまくいきません。
awk '(NR == 62 || NR == 152 || NR == 153) && (((NR-62) % 217==0) || ((NR-152) % 217 ==0)|| ((NR-153) % 217==0)) {print $0;}' file.txt
アップデート#2-2012年9月21日-10.55pm-終了
rmunozのアイデアを微調整してみました。それは魔法のように機能しました。rmunozをありがとう、これで私はこのトピックを閉じます
awk '(NR - 62) % 217 == 0 || (NR - 152) % 217 == 0 || (NR - 153) % 217 ==0 {print $0;}' file.txt