Unixを使用してテキストファイルの詳細形式を指定する方法[重複]

Unixを使用してテキストファイルの詳細形式を指定する方法[重複]

これは「カンマ」区切り文字を含む入力ファイルです。

$ cat dine_final.txt
FILENAME,FILESIZE,FILECOUNT
bur_m2_j12_re_yyyymmdd.dat,1235,1254
bur_m2_j13_re_yyyymmdd.dat,125,12546825
bur_m2_j14_re_yyyymmdd.dat,12565652425,125856
bur_m2_j35_re_yyyymmdd.dat,125,12
bur_m2_j40_re_yyyymmdd.dat,123542,1254
macys_unified_RE_prod_yyyymmdd.dat,12354,1254

私は、出力が良い形式を持つことを望んでいます。 「FILENAME」の下のすべてのフィールドはまったく同じフィールドで始まり、「FILESIZE」は同じフィールドで始まり、「FILECOUNT」は同じフィールドで始まる必要があります。

FILENAME                                FILESIZE        FILECOUNT
bur_m2_j12_re_yyyymmdd.dat              1235            1254
bur_m2_j13_re_yyyymmdd.dat              125             12546825
bur_m2_j14_re_yyyymmdd.dat              12565652425     125856
bur_m2_j35_re_yyyymmdd.dat              125             12
bur_m2_j40_re_yyyymmdd.dat              123542          1254
macys_unified_RE_prod_yyyymmdd.dat      12354           1254

答え1

awk -F, '{printf "%-39s %-15s %-15s\n", $1, $2, $3}' input
  • フィールド区切り文字でカンマを使用するように awk に指示する
  • 指定された形式で結果フィールドを印刷します。

必要に応じて出力に合わせてフィールド幅を調整してみました。-フィールドが右揃えではなく左揃えであることを示します。%s

関連情報