重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

Cシェルについて、すみませんが教えてください。。

AAA,BBB,1
1,data1,0000
2,data2,0000
3,data3,0000
4,data4,0000
・・・
CCC,15,2,13

上記のようなヘッダ1行+データN(ここでは13行とする)行+トレイラ1行で
構成されているファイルがあり、このヘッダとトレイラを以下のようなファイル
に加工するプログラムをCシェルで作成したいのですが、全く見当がつきません。

AAA,BBB,00001
1,data1,0000
2,data2,0000
3,data3,0000
4,data4,0000
・・・
CCC,00015,00002,00013

※ヘッダの3項目めを5桁になるように左0埋め
※トレイラの2項目めを5桁になるように左0埋め
※トレイラの3項目めを5桁になるように左0埋め
※トレイラの4項目めを5桁になるように左0埋め

どなたか教えてください。よろしくお願いいたします。

A 回答 (2件)

どうせデータが実際のものじゃないだろうからな。

具体的に書いても無駄かもと思うじゃない。

awk -F, '/^[1-9]/{print;next} NR==1{printf "%s,%s,%05d\n",$1,$2,$3} END{printf "%s,%05d,%05d,%05d\n",$1,$2,$3,$4}' file
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます!解決できました。
awkだとこのような書き方があるのですね。勉強になりました。

お礼日時:2012/04/09 19:13

Cシェルだけだと難しいので、awkかPerlかなんかを使えばいいかと。


if 今の行はヘッダ { @a=split(/,/):printf "%s,%s,%5d\n", $a[0], $a[1], $a[2] ;}
のような感じで(perlの例)。
    • good
    • 0
この回答へのお礼

すみません。初心者なもので、実際のプログラムで詳しく教えていただけると助かります。。

お礼日時:2012/03/31 18:49

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!