我有两个以管道分隔的文本文件(例如,A.txt和B.txt)。
以下是A.txt文件格式,标准格式(可以认为是通用集)
"EmpId"|"FName"|"LName"|"Sex"|"DOB"|"SSN"|"TagId1"|"TagId2"
下面是带有列和2条记录的B.txt文件(可以想到子集)。
"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"
如何去做?
答案 0 :(得分:1)
由于两种格式基本相同,除了列重新排序之外,我建议只将B.txt
读入字典(以列名作为键),然后将该字典打印到文件中,列顺序正确。
答案 1 :(得分:0)
awk -F'|' -v OFS='|' '{print $6, $3, $2, $5, $4, $1, $7, $8}' B.txt > A.txt