小编T. *_*arf的帖子

删除不超过或少于“N”个字段的行?

我正在使用 sed、perl、awk、bash 在 mac 上工作。

我有一个大型 (10GB) 文本文件,其中包含 13 个TAB分隔数据字段(列)。不幸的是,其中一些行有无关的TABs,所以我想删除我们有额外 TABs字段的整行,因此不相等的字段。(我不介意完全丢弃这些线条)

我目前拥有的将字段数写入另一个文件。

awk -F'\t' '{print NF}' infile  > fieldCount

head fieldCount
13
13
10
13
13
13
14
13
13
13
Run Code Online (Sandbox Code Playgroud)

我想构建一个简短的脚本,删除包含多于(或少于)13 个适当字段(来自原始文件)的任何行。

  1. 速度很有帮助,因为我必须对多个文件执行此操作
  2. 一口气做完会很酷
  3. 我目前正在将 fieldCount 文件移植到 Python 中,尝试逐行加载。

编辑:

有效(13 列)

a       b       c       d       e       f       g       h       i       j       k       l       m
Run Code Online (Sandbox Code Playgroud)

无效(14 列)

a       b       c       d       e       f       g       h       i       j       k       l       m       n
Run Code Online (Sandbox Code Playgroud)

sed awk text-processing columns

9
推荐指数
1
解决办法
7677
查看次数

标签 统计

awk ×1

columns ×1

sed ×1

text-processing ×1