use*_*269 0 linux awk grep sed
我有一个数据集,其中包含UUID行,后跟位置和事务ID.UUID由分号(';')分隔,事务由制表符分隔,如下所示:
01234;LOC_1=ABC LOC_1=BCD LOC_2=CDE
56789;LOC_2=DEF LOC_3=EFG
Run Code Online (Sandbox Code Playgroud)
我事先知道所有的位置代码.我想要做的是将这些数据转换为我可以加载到SQL/Postgres中进行分析的格式,如下所示:
01234;LOC_1=ABC
01234;LOC_1=BCD
01234;LOC_2=CDE
56789;LOC_2=DEF
56789;LOC_3=EFG
Run Code Online (Sandbox Code Playgroud)
我很确定通过查找文件中的位置ID(例如LOC_1)并匹配位置ID的任何实例并打印出UUID旁边的内容ID,我可以轻松地使用awk(或类似方法).我还没有把它弄好,任何帮助都非常感谢!
我的位置文件已命名location,我的数据集是data.请注意,我可以编辑原始文件或将结果写入新文件,也可以.
不使用awk split:使用分号或制表符作为字段分隔符
awk -F'[;\t]' -v OFS=';' '{for (i=2; i<=NF; i++) print $1,$i}' file
Run Code Online (Sandbox Code Playgroud)