0

私は bash スクリプトを使用して csv ファイルを解析しています。出力は行数と列数を含む表形式になるため、出力をテキスト ファイルの配置の不一致にリダイレクトすると、非常に乱雑に見えます。

私の出力をhtml形式にリダイレクトする方法や、他の代替方法を提案してくれる人はいますか。

前もって感謝します

4

3 に答える 3

2

HTML での出力が本当に必要ではないが、タブを使用した列の配置に問題がある場合は、 を使用して適切な列の配置を得ることができますprintf

ところで、質問にサンプル入力、それを解析して出力するために使用しているスクリプト、およびサンプル出力が含まれていると役立ちます。

の簡単なデモンストレーションを次に示しprintfます。

$ cat file
example text,123,word,23.12
more text,1004,long sequence of words,1.1
text,1,a,1000.42

$ cat script
#!/bin/bash
headformat='%-*s%-*s%*s%*s\n'
format='%-*s%-*s%*d%*.*f\n'
modwidth=16; descwidth=24; qtywidth=6; pricewidth=10
printf "$headformat" "$modwidth" Model "$descwidth" Desc. "$qtywidth" Qty "$pricewidth" Price
while IFS=, read model quantity description price
do
    printf "$format" "$modwidth" "$model" "$descwidth" "$description" "$qtywidth" "$quantity" "$pricewidth" 2 "$price"
done < file

$ ./script
Model           Desc.                      Qty     Price
example text    word                       123     23.12
more text       long sequence of words    1004      1.10
text            a                            1   1000.42
于 2012-06-01T15:49:26.883 に答える
0

簡単な解決策は column(1) を使用します:

column -t -s, <( echo "head1,head2,head3,head4"; cat csv.dat )

次のような結果になります。

head1  head2     head3   head4
aaaa   33333     bbb     123
aaa    333333    bbbx    123
aa     3333333   bbbxx   123
a      33333333  bbbxxx  123
于 2012-06-02T12:26:21.020 に答える
0

TSV で記述し、XSLT スタイルシートで TSV から XHTML に変換します。$'\t'タブ文字を生成するために bash で使用できます。

于 2012-06-01T15:08:32.830 に答える