【问题标题】:How to extract lines with n number of tabs? unix如何提取具有 n 个选项卡的行? Unix
【发布时间】:2014-08-15 08:07:13
【问题描述】:

我有一个制表符分隔的文件:

xyz
abc foo bar
hello   world
lmn opq rst

我想提取正好有 3 个标签的行并实现:

abc foo bar
lmn opq rst

我一直在用python做:

fout = ('outfile', 'w')
with open('infile', 'r') as fin:
  for line in fin:
    if line.count('\t') == 3:
      print>>fout, line

unix/bash 的实现方式是什么?

【问题讨论】:

  • 你显示的输出是用空格分隔的?

标签: bash unix csv


【解决方案1】:

您可以将awk 与字段分隔符用作\t(制表符):

awk -F '\t' 'NF==3' file
abc foo bar
lmn opq rst

NF==3 条件只会打印恰好包含 3 个字段(2 个选项卡)的行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-11
    • 2020-07-02
    • 2016-09-14
    • 1970-01-01
    • 2017-11-11
    • 1970-01-01
    • 2012-08-16
    相关资源
    最近更新 更多