以下はPoolReport.txt
いくつかのサンプルデータです。
Thu, Aug 27, 2015 7:56:29 AM
PoolName,Total GB,Used GB ,Available GB ,Percent Full
Oracle-RAID10,6432.539,6179.295,253.244,96.063
VM_File,45210.379,40726.389,4483.991,90.082
Oracle-RAID5,15025.039,12289.707,2735.332,81.795
次の形式でなければなりません。
Thu, Aug 27, 2015 7:56:29 AM
PoolName Total GB Used GB Available GB Percent Full
Oracle-RAID10 6432.539 6179.295 253.244 96.063
VM_File 45210.379 40726.389 4483.991 90.082
Oracle-RAID5 15025.039 12289.707 2735.332 81.795
私はより良い形式(下)を作成できましたが、必要な作業を実行できませんでした。
awk -F "," '{print $1"\t" $2"\t" $3"\t" $4"\t" $5"\t" }' PoolReport.txt
Thu Aug 27 2015 7:56:29 AM
PoolName Total GB Used GB Available GB Percent Full
Oracle-RAID10 6432.539 6179.295 253.244 96.063
VM_File 45210.379 40726.389 4483.991 90.082
Oracle-RAID5 15025.039 12289.707 2735.332 81.795
答え1
質問を正しく理解したかどうかはわかりませんが、列を並べ替えたいと思います。この場合、次のコマンドがcolumn
便利です。
column -s, -t file
出力:
Thu Aug 27 2015 7:56:29 AM
PoolName Total GB Used GB Available GB Percent Full
Oracle-RAID10 6432.539 6179.295 253.244 96.063
VM_File 45210.379 40726.389 4483.991 90.082
Oracle-RAID5 15025.039 12289.707 2735.332 81.795
または、最初の行を変更せずに保持するには
{ head -n 1; column -s, -t; } <file
出力:
Thu, Aug 27, 2015 7:56:29 AM
PoolName Total GB Used GB Available GB Percent Full
Oracle-RAID10 6432.539 6179.295 253.244 96.063
VM_File 45210.379 40726.389 4483.991 90.082
Oracle-RAID5 15025.039 12289.707 2735.332 81.795
man column
出力を調整するために追加できる可能なオプションを確認してください。
答え2
最初の行を除いて、すべての項目を,
次に変更します。{tab}
sed '2,$s/ *, */\t/g' PoolReport.txt
または、最初の行を除いて、タブ区切り文字を使用してフィールドの書式を指定します。
awk -F, 'NR==1;NR>1{OFS="\t"; print $1,$2,$3,$4,$5}' PoolReport.txt
両方のインスタンスの出力:
Thu, Aug 27, 2015 7:56:29 AM
PoolName Total GB Used GB Available GB Percent Full
Oracle-RAID10 6432.539 6179.295 253.244 96.063
VM_File 45210.379 40726.389 4483.991 90.082
Oracle-RAID5 15025.039 12289.707 2735.332 81.795