删除制表符分隔文件中的空白行

时间:2015-07-10 04:00:04

标签: tab-delimited tab-delimited-text

我有一个制表符分隔文件,其中有几行没有数据,但这些空记录中有标签。例如,当我执行cat -vet file.csv时,输出为

  

COL1 ^ Icol12 ^ Icol3 ^ Icol4 ^ Icol5 ^ Icol6 ^ Icol7 $
  ACB ^ ^ IBAD IASO ^ ^ ICNA ISOC ^ ^ Iioe $ Ifhn
  SOC ^ ^ Iioe ^ Ifhn ^ Iacb IBAD ^ ^ IASO IASO $
  ^ I ^ I ^ I ^ I ^ I ^ I ^ I $
  SOC ^ Iioe ^ Ifhn ^ Iacb ^ IBAD ^ IASO ^ IASO $

我正在寻找输出

  

COL1 ^ Icol12 ^ Icol3 ^ Icol4 ^ Icol5 ^ Icol6 ^ Icol7 $
  ACB ^ ^ IBAD IASO ^ ^ ICNA ISOC ^ ^ Iioe $ Ifhn
  SOC ^ ^ Iioe ^ Ifhn ^ Iacb IBAD ^ ^ IASO IASO $
  SOC ^ Iioe ^ Ifhn ^ Iacb ^ IBAD ^ IASO ^ IASO $

提前致谢。

3 个答案:

答案 0 :(得分:3)

我认为最简单的方法可能是使用grep来过滤掉只包含空格的所有行:

grep -v -e '^[[:space:]]*$' file.csv 

答案 1 :(得分:0)

您可以编写一个快速程序,读取所有行,删除任何空白行,然后将其写回。这样你就有了一个没有空行的文件。

在C#中

var lines = File.ReadAllLines("FilePath").Where(x => x.Trim() != "");
File.WriteAllLines("FIlePath",lines);

答案 2 :(得分:0)

你可以使用这样的东西来丢弃少于10个字符的所有行:

grep -E '^.{10,}$' inp.csv

根据您的具体情况,您可能需要调整丢弃的短线阈值。