2016-12-30 67 views
0

每個成員尋找一個awk的一個襯墊對該格式,其中字段數和行數是任意的文件格式一些文字:awk中一個襯墊,以最後一個字段複製到線

abcd,abce,test1 
bbcd,bbee,bbvc,test2 
ccdd,ccbb,ccbd,ccab,testxyz 

在哪裏輸出是其中在每一行的最後一個字段附加到每個字段中的行:

abcd,test1 
abce,test1 
bbcd,test2 
bbee,test2 
bbvc,test2 
ccdd,testxyz 
ccbb,testxyz 
ccbd,testxyz 
ccab,testxyz 

回答

2

假設所有線路具有至少2個字段:

awk -F, '{OFS=","; for(i=1;i<NF;i++) print $i,$NF}' file 

可以做你期望的。

如果有可能只用一個磁力線,你可以只打印:

awk -F, '{OFS=","; for(i=1;i<NF;i++) print $i,$NF; if(NF==1) print $0}' file 
0

這可能會爲你工作(GNU SED):

sed -r 's/,(.*(,[^,]*))$/\2\n\1/;P;D' file 

如果該行包含2個或更多逗號,用逗號替換第一個逗號,最後一個字段和換行符,打印第一行,刪除第一行並重復。

相關問題