UNIX中行到列的转换

时间:2019-05-20 23:11:46

标签: unix

我在Unix文件中具有以下格式的数据,需要进行如下转换。

FROM

ABC: XYZ_RMP1(1),UVW_RMP1(1)
DEF: UVW_RMP1(2),MNS_ABT2(3),AMO_KYZ3(
GHI: AMO_KYZ3(1),NPO_ABT1(4)
JKL: HJY_RST4(1),TSU_RMP1(5),FBT_MUS6(3)

TO

ABC_XYZ_RMP1
ABC_UVW_RMP1
DEF_UVW_RMP1
DEF_MNS_ABT2
DEF_AMO_KYZ3
GHI_AMO_KYZ3
GHI_NPO_ABT1
JKL_HJY_RST4
JKL_TSU_RMP1
JKL_FBT_MUS6

我尝试了以下命令

awk '{for(i=1;i<=NF;i++) printf "%s\n",$i}'  file >> file1
sed 's|[:(),]||g' file1  >> file2
sed 's/.$//' b.txt file2 >> file3

1 个答案:

答案 0 :(得分:0)

你快到了。

 sed 's/,/ /g' input | awk '{for(i=2;i<=NF;i++) printf "%s %s\n",$1,$i}' | sed 's/: /_/;s/(.*)//g' > output