用于组合两个缺少不同标题的文本文件的解

时间:2012-08-03 16:12:31

标签: windows shell sed awk grep

我在Windows环境中运行并且没有使用grep / awk / sed / shell;但是,我想知道对于以下问题最简单的解决方案是什么:

我有两个文件(它们都有标题):

  1. 遗传文件。列是Animal,Car,Color
  2. 标本文件。列是Animal,Color
  3. 我想将两个文件合并为一个文件,所有标题都存在;但是,样本文件部分的空格值为Car。最终产品将是:

    +----------+------+-------+---------------------------------------------------------------------+
    |  Animal  | Car  | Color |                                                                     |
    +----------+------+-------+---------------------------------------------------------------------+
    | Elephant | Jeep | Grey  | (from genetics file [don’t include this text in the resulting file) |
    | Dog      | Ford | Red   | (from genetics file)                                                |
    | Cat      |      | Blue  | (from specimen file)                                                |
    | Donkey   |      | Green | (from specimen file)                                                |
    +----------+------+-------+---------------------------------------------------------------------+
    

    Windows环境中最简单的解决方案是什么?

    编辑:澄清这些标签的原因是因为我相信这些工具最适合这项工作!我不想创建一个完整的c#应用程序来执行此操作。

3 个答案:

答案 0 :(得分:2)

问题中提到的工具sedawkgrep等不是Windows的原生工具。

为了使用它们,您必须做出选择:

  • 在您的计算机上安装unix或linux,无论是本地还是虚拟化。

或:

这些项目有很多文档,但如果你是新手,还有很多东西需要学习。

开始虚拟化的一个简单方法是获取Oracle的Virtualbox和ubuntu linux的副本。

答案 1 :(得分:1)

这是你想要的吗?

$cat input.ani
|Elephant|Jeep|Grey|
$ cat input.Specimen
| Cat | Blue  |
| Dog | White |
| Elephant | Red |
$ cat input.Specimen  | awk    '{print $1 $2 $3 "   " $3 $4 $5 $6  }' >> input.ani
$ cat input.ani
|Elephant|Jeep|Grey|
|Cat|   |Blue|
|Dog|   |White|
|Elephant|   |Red|

答案 2 :(得分:1)

第二个想法,对于简单的解决方案,我不建议使用unix工具集,除非你真的想学习环境。

对于Windows系统,您也可以安装好的脚本语言,例如pythonperlruby

这些都不是微不足道的,但是他们有很好的支持,并且他们有适合Windows的安装程序。

另一个替代方案是PowerShell,它再次基于.Net运行时。