gpt4 book ai didi

awk - 在大文件中打印选定的行

转载 作者:行者123 更新时间:2023-12-04 16:00:43 25 4
gpt4 key购买 nike

我是 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
沙拉湾

更新 #1 - 2012 年 9 月 21 日 - 晚上 10.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

更新 #2 - 2012 年 9 月 21 日 - 晚上 10.55 - 已关闭

我尝试了一些调整的 rmunoz 想法。它像魔术一样起作用。感谢 rmunoz,这样我就结束了这个话题
awk '(NR - 62) % 217 == 0 || (NR - 152) % 217 == 0 || (NR - 153) % 217 ==0 {print $0;}' file.txt

最佳答案

您可以通过以下方式在 AWK 中使用模式:

 awk 'NR == 62 || NR == 152 || NR == 153 || NR % (62+217) == 0 || NR % (152+217) == 0 || NR % (153+217) == 0 {print $0;}' test.txt

关于awk - 在大文件中打印选定的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12538350/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com