次のデータを含むファイルがあります。
1,2,3 4,5,6 7,8,9 12,22,0
私は4つの列を持つテーブルを作成したいと思いますa,b,c,d
。この列にはa
最初の列の値があり、b
2番目の列にはその値があります。
上記の例では、列は次のようになります。
a b c d
1 4 7 12
2 5 8 22
3 6 9 0
残った何でも。特定の行の列の項目は同じです。ただし、これらの項目は行ごとに異なる場合があります。たとえば、一部の行には列ごとにコンマで区切られた項目が1つしかない場合があり、一部の行には10行がある場合があります。
ベストアンサー1
列の命名方法(ユーザー入力、使用する各列に事前定義された名前など)は不明です。
文字列を列に分割するには、次のものを使用できますsed
。
echo 1,2,3 4,5,6 7,8,9 12,22,0 | sed -n 'h;:a;g;s/,[^ ]*//gp;g;s/^[^, ]*,//;s/ [^,]*,/ /g;h;ta;p'
ここではsed
、文字列全体をバッファにコピーし()、h
ループの行を繰り返し(:a
..)、バッファからコピーした文字列を取得し()、各部分から最初の数字を取得し(first)印刷します()。変更されていない文字列を再検索し、最初の数字(2番目と3番目)を削除してから、変更された文字列をバッファ()に戻します。これは文字列状態にある場合でも継続されます。消えたら、残りを印刷します。ta
g
s
p
s
h
,
p