2012-03-23 6 views
7

を追加私は、次のfile.csvになりawkのカウント数に応じ

111111 | 111111 | 22222 | 44444 | 4445454 | 67554333 | 

を持っている私は、私は33個のフィールドを持っている私のデータベーススキーマに次の

awk -F '|' '{print NF}' file.csv 

を使用してフィールドの数を数えることができますしかし、私のCSVファイルの行のいくつかは33未満のフィールドしか持っていないので、ファイルをインポートするとミスマッチについて不平を言います。

awkを使用する方法NULLフィールドスプレッダを追加するにはどうすればよいですか。 33行をいっぱいにするために

あなたの助けに感謝します。これはあなたのために働くかもしれない

awk -F'|' -v OFS='|' '{for(i=NF+1;i<=33;i++)$i=""}1' file.csv 

答えて

6

行の最後に空のフィールドを追加するには感謝

sed ':a;s/|/&/33;t;s/$/|/;ta' file.csv 
+0

は非常によく働いた、感謝 – Deano

+1

を簡単なバージョンがあることができ'awk -F '|' -v OFS = '|' 'NF> = 33' '(「NF + 1」と「33」の間にフィールドを設定する必要はなく、「NF> = 33」はラインを印刷します)。 – jfg956

+0

@jfgagne良いアイデア。 '' NF <33 {$ 33 = ""} 1'' – kev

2

あなたは

+0

これも機能します!ありがとうございました – Deano

関連する問題