【问题标题】:C# How to convert one file format to another format?C#如何将一种文件格式转换为另一种格式?
【发布时间】:2014-03-26 21:25:46
【问题描述】:

我有两个用竖线分隔的文本文件(例如 A.txt 和 B.txt)。

下面是A.txt文件格式,一种标准格式(可以认为是Universal Set)

"EmpId"|"FName"|"LName"|"Sex"|"DOB"|"SSN"|"TagId1"|"TagId2"

下面是 B.txt 文件(可以认为是子集),包含列和 2 条记录。

"SSN"|"LName"|"FName"|"DOB"|"Sex"|"EmpId"
"123"|"Barrat"|"Alanzon"|"1983"|"F"|"4455"
"678"|"Alexia"|"Timothy"|"1975"|"M"|"2222"||"baz"

我需要将 B.txt 转换为 A.txt 格式的列顺序。 预期结果是:

"EmpId"|"FName"|"LName"|"Sex"|"DOB"|"SSN"|"TagId1"|"TagId2"
"4455"|"Alanzon"|"Barrat"|"F"|"1983"|"123"|||
"2222"|" Timothy "|" Alexia"|"M"|"1975"|"678"||"baz"

怎么办?

【问题讨论】:

  • 首先尝试格式化您的 Q
  • 你有没有尝试过?
  • 您是否需要在您正在编写的程序中执行此操作,或者您是否正在寻找执行此操作的工具?你运行的是什么操作系统?
  • 这似乎是一个微不足道的awk 脚本
  • 为什么Timothy 和Alexia 在输出中没有空格,而它不在输入中? Alanzon 和 Barrat 没有类似的修改。

标签: file-conversion


【解决方案1】:

由于这两种格式基本相同,除了列被重新排序,我建议将B.txt 读入字典(以列名作为键),然后将该字典打印到文件中,列以正确的顺序。

【讨论】:

    【解决方案2】:
    awk -F'|' -v OFS='|' '{print $6, $3, $2, $5, $4, $1, $7, $8}' B.txt > A.txt
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-14
      • 2018-01-20
      • 1970-01-01
      • 1970-01-01
      • 2016-10-09
      • 1970-01-01
      相关资源
      最近更新 更多