各行の末尾にカンマを追加する方法(二重引用符で囲まれたテキストのコンマを無視し、行の数に基づいています)?

各行の末尾にカンマを追加する方法(二重引用符で囲まれたテキストのコンマを無視し、行の数に基づいています)?

以下はデータサンプルです。

私が達成したいのは、各行のカンマ数を数える必要があることです(また、二重引用符( "")で囲まれた文字列のカンマを無視する必要があります)。カンマ数が特定の数より少ない場合は、残りのカンマ数を追加する必要があります。例えば。 1行あたりのコンマ数は50個でなければなりません。 1行に18個のカンマがある場合は、残りの32個のカンマを行末に追加する必要があります。また、二重引用符("")で囲まれた文字列のカンマを無視する必要があります。

[20/07/2016 23:56:13.412],1502740051,2,501,"[2]",8,TL_mostPlayedVOD_15_days,
[20/07/2016 23:56:13.412],1502740051,2,501,"[2]",8,TL_mostPlayedVOD_15_days,,2,1645981,"you, me and he",1461742773000
[04/10/2016 01:30:30.789],1502702627,2,501,"[2]",8,TL_mostPlayedVOD_15_days,,2,1967748,"sex and the city",1414665744000,1512143880000,NAM20141030102723000,2,3967956,"the big bang theory",1469531668000,1492185539000,NAM20160726104146000,2,6399683,"abang bomba ,i love you",1473865200000,1491148680000,NAM20160914094137000,2,6226697,"super spontan superstar",1471068000000,1491321540000,NAM20160813044535000,2,6579649,"lara aishah",1474887600000,1499702340000,NAM20160925025431000,2,6671628,"konsert af 2016",1474869600000,1491494160000,NAM20160928025259000,
[04/10/2016 01:30:30.789],1502702627,2,501,"[2]",8,TL_mostPlayedVOD_15_days,,2,1967748,"sex and the city",1414665744000,1512143880000,NAM20141030102723000,2,3967956,"the big bang theory",1469531668000,1492185539000,NAM20160726104146000,2,6399683,"abang bomba i love you",1473865200000,1491148680000,NAM20160914094137000,2,6226697,"super spontan,superstar",1471068000000,1491321540000,NAM20160813044535000

ベストアンサー1

貴重なコメントと提案を送ってくれた皆さんに感謝します。私はもっ​​と簡単な解決策を見つけました。

#!/bin/bash

FILE='/tmp/file.log'

cat $FILE | awk '{print $0",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,"}' >> MODIFIED_FILE

while read line;

do

    echo $line | cut -d ',' -f1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50 >> NEW_FILE

done < "MODIFIED_FILE"

おすすめ記事