需要一个脚本来提取文件中包含多于指定列的行awk
吗?
答案1
$ awk 'NF > 10 { print NR }' data.in
这将打印行号(实际上是记录数字,但由于默认情况下一行是一条记录,所以没有区别)每行包含超过 10 个字段。默认情况下,字段是由空格分隔的字符串,如果有其他分隔符,请使用-F
(-F ','
代替逗号):
$ awk -F ',' 'NF > 10 { print NR }' data.in
如果您想查看行而不是行号,那就更简单了:
$ awk 'NF > 10' data.in
答案2
如果您的问题是:如何从列数超过“最大”的文件中打印行,这是一种方法:
awk -v max=9 'NF > max' your-file-here
传入您想要指定的 max 值(此处为 9)。
答案3
如果提取你的意思是删除你可以使用awk
$ awk 'NF < 10' my-file.in > my-file.out
分解
NF
是一个 awk 变量,它显示当前正在处理的行中有多少个字段。
< 10
如果 NF 小于 10,它将打印该行。
my-file.in
输入文件。
> my-file.out
将输出重定向到新文件。
如果您想了解有关 awk 的更多信息,它是内置的,我发现内置 awk 变量的布局非常漂亮这里。