需要幫助將行轉換爲unix腳本中的列。我的來源是文件系統。Unix awk腳本將列轉換爲行
嘗試下面的腳本:
`perl -nle '
if($. == 1)
{ (@a)=/([\w - .]+)(?=,|\s*$)/g }
else
{
(@b)=/([\w - .]+)(?=,|\s*$)/g;
print "$a[0]|$b[0]|$b[1]|$b[2}|$a[$_]|$b[$_+3]" foreach (0..$#a)
}
' ip.txt >op.txt
input data from file:
src,FI,QMA,PCG,PCC,PREI,G T
PIM2016.csv,MMR.S T - RED,334,114,120,34,123,725
與最新的腳本輸出:
SRC | PIM2016.csv | MMRPPS |紅色| SRC | 334 SRC | PIM2016.csv | MMRPPS |紅色| FI | 114 SDRC | PIM2016.csv | MMRPPS | RED | QMA | 120 SRC | PIM2016.csv | MMRPPS | RED | PCG | 34 SRC | PIM2016.csv | MMRPPS | RED | PCC | 123 SRC | PIM2016.csv | MMRPPS | RED | PREI | 725 SRC | PIM2016.csv | MMRPPS | RED | GT |
需要的輸出:
SRC | PIM2016.csv | MMRPPS | ST - 紅| FI | 334 SRC | PIM2016.csv | MMRPPS | ST - 紅| QMA | 114 SRC | PIM2016。 csv | MMRPPS | ST -RED | PCG | 120 SRC | PIM2016.csv | MMRPPS | ST -RED | PCC | 34 SRC | PIM2016.csv | MMRPPS | ST -RED | PREI | 123 SRC | PIM2016.csv | MMRPPS | ST - 紅| GT | 725
也許你可以分享你到目前爲止已經嘗試過,以及你在哪裏專門掙扎? – wwkudu
你的實際數據是否有兩行以上?如果是這樣,你能用至少兩個這樣的數據和期望的輸出來修改你的樣本輸入嗎? – Sundeep
@Sundeep:是超過兩行的實際數據。我會修改樣本數據 – udayadevan