【发布时间】:2020-02-01 14:42:25
【问题描述】:
我正在尝试使用 cat 命令将不同的文件合并到一个文件中。
cat F_Worker_TEMP_VO.dat F_PERSON_NAME_VO.dat F_PERSON_CITIZENSHIP_VO.dat F_PERSON_LEGISLATIONDATA_VO.dat F_PERSON_RELIGION_VO.dat F_PERSON_PASSPORT_VO.dat F_PERSON_DRIVERSLIC_VO.dat F_PERSON_NATIONALIDE_VO.dat F_PERSON_NATIONALIDE_ADH_TEMP_VO.dat F_PERSON_NATIONALIDE_SSN_TEMP_VO.dat > Worker.dat
Worker.dat 是我的输出文件。
使用上面的代码,第二个文件在第一个文件数据的末尾开始。我希望每个文件数据都以新行开头
我已经尝试在上面的代码中插入 /n, echo。它没有给我输出
cat F_Worker_TEMP_VO.dat F_PERSON_NAME_VO.dat F_PERSON_CITIZENSHIP_VO.dat F_PERSON_LEGISLATIONDATA_VO.dat F_PERSON_RELIGION_VO.dat F_PERSON_PASSPORT_VO.dat F_PERSON_DRIVERSLIC_VO.dat F_PERSON_NATIONALIDE_VO.dat F_PERSON_NATIONALIDE_ADH_TEMP_VO.dat F_PERSON_NATIONALIDE_SSN_TEMP_VO.dat > Worker.dat
示例预期格式 每个元数据都是我正在合并的不同文件的结果。每个元数据都应以新行开头
METADATA Worker EffectiveStartDate EffectiveEndDate StartDate CategoryCode ActionCode BloodType CorrespondenceLanguage DateOfBirth TownOfBirth SourceSystemOwner
METADATA PersonName PersonNameId EffectiveStartDate EffectiveEndDate PersonId(SourceSystemId) SourceSystemOwner SourceSystemId Title KnownAs LegislationCode NameType
METADATA PersonCitizenship CitizenshipId PersonId(SourceSystemId) DateFrom DateTo LegislationCode CitizenshipStatus SourceSystemOwner SourceSystemId
Actual
METADATA Worker EffectiveStartDate EffectiveEndDate StartDate CategoryCode ActionCode BloodType CorrespondenceLanguage DateOfBirth TownOfBirth SourceSystemOwner SourceSystemIdMETADATA PersonName PersonNameId EffectiveStartDate EffectiveEndDate PersonId(SourceSystemId) SourceSystemOwner SourceSystemId Title KnownAs LegislationCode NameTypeMETADATA PersonCitizenship CitizenshipId PersonId(SourceSystemId) DateFrom DateTo LegislationCode CitizenshipStatus SourceSystemOwner
目前,每个结果文件之间存在间隙。它从上一个文件结果的结尾开始
【问题讨论】:
-
1.遍历文件。 2. 对于每个文件 a) cat it b) 打印一个换行符。或者更高级 - 将每行上的文件列表输入到
xargs,将其应用于sed,在文件的最后一行添加换行符。 -
你能帮我写代码吗?我是 unix 新手
-
您的文件不以换行符结尾?这可以说是坏了。
-
不,结果来了是继续以前的文件数据。
-
例如,personname 文件的元数据标记在工作文件源系统数据的数据之后开始