加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

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

发布时间:2020-12-13 23:06:42 所属栏目:Linux 来源:网络整理
导读:我是AWK的新手. 我有一个大文本文件( 3GB).喜欢使用AWK行命令按顺序提取/打印所选行(第62行,第152行和第153行),它每217行重复一次,直到文件中的记录结束. 试图从网上搜索和学习.尝试以下,似乎没有工作, awk '{(for (i=62; i=NR; i=i+217)||for (i=62; i=NR;
我是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 K.

更新#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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读