2

给定一个文本文件,它应该包含 10 个制表符分隔的列(即 9 个制表符),我想找到所有列超过 10 个(超过 9 个制表符)的行。每行以 CR-LF 结尾。

除了上述之外,对数据、字段宽度等不做任何假设。

关于方法和/或工作代码的评论将不胜感激。打印违规行的行号的奖励也是如此。

提前致谢!

编辑,正如评论者所指出的(谢谢!),您可以假设数据不包含制表符或 CRLF。

4

2 回答 2

4

只需使用正则表达式:

(.*\t){10,}

于 2010-06-08T19:24:10.053 回答
3
awk -F'\t' 'NF>10{print}' <filename>

或者,使用行号:

awk -F'\t' 'NF>10{print NR; print}' <filename>
于 2010-06-08T19:16:14.063 回答