使用 gawk 将每第 n 行打印成一行 [英] print every nth line into a row using gawk

查看:33
本文介绍了使用 gawk 将每第 n 行打印成一行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个非常大的文件,我需要在其中获取每第 n 行并将其打印成一行.

I have a very huge file in which I need to obtain every nth line and print it into a row.

我的数据:

1      937  4.320194
2      667  4.913314
3      934  1.783326
4      940  -0.299312
5      939  2.309559
6      936  3.229496
7      611  -1.41808
8      608  -1.154019
9      606  2.159683
10     549  0.767828

我希望我的数据如下所示:

I want my data to look like this:

1      937  4.320194
3      934  1.783326
5      939  2.309559
7      611  -1.41808
9      606  2.159683

这当然是一个例子,我希望我的巨大数据文件每 10 行.到目前为止我试过这个:

This is of course an example, I want every 10th line for my huge data file. I tried this so far:

 NF == 6 {
     if(NR%10) {print;}
     }

推荐答案

从第一行开始,每隔一行打印一次:

To print every second line, starting with the first:

awk 'NR%2==1' file.txt

每十行打印一次,从第十行开始:

To print every tenth line, starting with the tenth line:

awk 'NR%10==0' file.txt

<小时>

要在脚本中使用它,请将以下内容添加到名为 script.awk 的文件中:

BEGIN {
    print "Processing file"
}

NR%10==0

END {
    print "Finished processing"
}

然后执行:

awk -f script.awk file.txt

这篇关于使用 gawk 将每第 n 行打印成一行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆