CSV ファイルを解析し、指定された形式で出力するスクリプトを作成しようとしています。
入力ファイルは以下の形式です。
collectionBeginTime,ID,MU,hostname,Granularity,SampleInterval,suspectFlag,memCpuUsage,memUsedMemory,memMemoryCapacity,memRequestNum,memOnlineUserNum,memUsedLogDisk,memLogDiskCapacity,freeCPUUsage,freeMemory,freeLogDisk
2015-11-27 17:30:00-0500,NE=2106384,hwMEMPerformanceCollect,PG_172.16.169.70,900,900,0,24,7130,36153,0,1554,23026,157239,76,29023,134213
2015-11-27 17:30:00-0500,NE=2106386,hwMEMPerformanceCollect,PG_172.16.169.68,900,900,0,4,7481,36153,0,1594,22778,157239,96,28672,134461
出力は次の形式であることが期待されます (入力の最初の行の出力行の一部のみを示します)。
collectionBeginTime , hostname , Parameters
2015-11-27 17:30:00-0500, PG_172.16.169.70, SampleInterval:900
2015-11-27 17:30:00-0500, PG_172.16.169.70, suspectFlag:0
最初の行の後に各行の列 1 と 4 を出力し、その後に列名 (ファイルの行 1 から)、:
列 6..NF の列値 (列 2、3、5 をすべて無視) を出力する必要があります。1 つの入力行から、多数の出力行が生成されます。
私が書いたスクリプト:
#!/bin/bash
FILENAME=$1
awk -F',' 'BEGIN{OFS=",";} { if ( NR!=1 )print $1,$4,$6,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17}' < $FILENAME >> tmp.txt
echo "completed"
スクリプトは実行されていますが、同じ行にすべてのパラメーターが名前なしで表示されています。どうすれば修正できますか?