4
我是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 Saravananķ
更新#1 - 2012年9月21日 - 下午十點40
試過
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
更新#9月2日至21日2012 - 下午10時55分 - 封閉
我試圖rmunoz想法有一些調整。它像魔術一樣工作。感謝rmunoz,這個我關閉這個主題
awk '(NR - 62) % 217 == 0 || (NR - 152) % 217 == 0 || (NR - 153) % 217 ==0 {print $0;}' file.txt
感謝您的指針。我能夠打印第62行,第152行,第153行,但是在打印第62 + 217,#152 + 217,#152 + 217等下一個迭代時出現問題。 (NR == 152 || NR == 152 || NR == 153)&&(((NR-62)%217 == 0)||((NR-152)%217 == 0) |((NR-153)%217 == 0)){print $ 0;}'test.txt它也不能正常工作。將繼續調查 –
好的,我知道你只想要62,152,152和%127行。 我要編輯我的答案,打印行%(62 + 127),行%(152 + 127).. – arutaku
我用你的想法做過操作。下面是我想要的。謝謝!你是天使。 awk'(NR - 62)%217 == 0 || (NR - 152)%217 == 0 || (NR - 153)%217 == 0 {print $ 0;}'file.txt –