• ベストアンサー

Awkで固定行ずつ行列転置

A B C D E F G H . . . と、1列にデータが並んだテキストファイルの中身を A B C D E F G H ... のように4列ずつに区切って並べ替えるawkスクリプトを 書きたいのですが、どのように書けばいいでしょうか? もとのデータの行数は4の倍数とは限らないので、 並べ替え後の最後の行はフィールドが4つ未満になるかもしれません。

質問者が選んだベストアンサー

  • ベストアンサー
  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.1

{ record = record " " $0 } NR % 4 == 0 { output(record) record="" } END { output(record) } function output(r) { if (r) print substr(r, 2) } こんなんで。

juillet07
質問者

お礼

うまくいきました!! functionを使ったことがなかったので、書いていただいたスクリプトを解釈するのに少々時間がかかり、お礼が遅れてしまいました。 ありがとうございました!

関連するQ&A