仅将指定数据合并到单个csv文件中

时间:2017-04-26 21:15:59

标签: linux csv sed cut

我熟悉使用cat梳理csv文件。在指定行时我也熟悉这样做。

我需要知道的是如何仅组合在csv文件中启动指定行的指定列。我使用的csv文件有点疯狂,但它们都是相同的格式。我无法控制他们的输出,我被迫弄清楚如何组合几百个文件(希望不是手动)。

数据示例:

| Column1      | Column3 | Column4      | Column5 | Column6      | Column7 | Column8 | Column9 | Column10     | Column11 |
|--------------|---------|--------------|---------|--------------|---------|---------|---------|--------------|----------|
| garbage data |         | garbage data | garbage |              |         |         | garbage |              |          |
| garbage data |         | garbage data |         |              |         |         |         |              |          |
| garbage data |         | garbage data |         |              |         |         |         |              |          |
| garbage data |         | garbage data |         |              |         |         |         |              |          |
| garbage data |         | garbage data |         | garbage      | garbage |         |         |              |          |
| garbage data |         | garbage data |         | good data 1  |         |         |         | good data 1  | garbage  |
| garbage data |         | garbage data |         | good data 2  |         |         |         | good data 2  | garbage  |
| garbage data |         | garbage data |         | good data 3  |         |         |         | good data 3  | garbage  |
| garbage data |         | garbage data |         | good data 4  |         |         |         | good data 4  | garbage  |
| garbage data |         | garbage data |         | good data 5  |         |         |         | good data 5  | garbage  |
| garbage data |         | garbage data |         | good data 6  |         |         |         | good data 6  | garbage  |
| garbage data |         | garbage data |         | good data 7  |         |         |         | good data 7  | garbage  |
| garbage data |         | garbage data |         | good data 8  |         |         |         | good data 8  | garbage  |
| garbage data |         | garbage data |         | good data 9  |         |         |         | good data 9  | garbage  |
| garbage data |         | garbage data |         | good data 10 |         |         |         | good data 10 | garbage  |

编辑:所需的输出将是第6行,其中“良好数据”从第6列和第10列开始向下(文件各为1000到2000行)。

编辑2 :所需的输出

| Column10     | Column6      |
|--------------|--------------|
| good data 1  | good data 1  |
| good data 2  | good data 2  |
| good data 3  | good data 3  |
| good data 4  | good data 4  |
| good data 5  | good data 5  |
| good data 6  | good data 6  |
| good data 7  | good data 7  |
| good data 8  | good data 8  |
| good data 9  | good data 9  |
| good data 10 | good data 10 |

欢迎所有反馈。

2 个答案:

答案 0 :(得分:3)

如果它们确实是CSV文件,

awk -F, 'FNR>5 {print $6,$10}' *.csv > BigBoy.csv

答案 1 :(得分:1)

使用sedcut

sed '1,6d' file | cut -f6,10
  • sed '1,6d'将删除所有第六行
  • cut -f6,10将提取所需的列(使用制表符作为分隔符)

一次性处理所有csv文件:

sed '1,6d' *.csv | cut -f6,10 > output.csv