UNIX スクリプトでは、固定長レコードの残りの部分にスペースを追加します。

UNIX スクリプトでは、固定長レコードの残りの部分にスペースを追加します。

250文字の長さ(固定)のレコードに約40文字のデータがあります。しかし、残りの250-40 = 210文字をスペースで追加したいと思います。 UNIXスクリプトではこれをどのように実行しますか?

答え1

使用awk:

awk '{ printf "%-250s\n", $0 }' infile >outfile

%-250sここで使用される書式文字列は、パラメータprintf$0現在の行)を250文字の長さの文字列にフォーマットします。この250文字以内では、元の行は左揃えになり、入力行の空のビットは250桁を埋めるために空白で埋められます。

入力ラインの長さが250文字を超えると、入力ラインは出力で変更されずに再現されます。 250文字で長すぎる行を切り捨てるには、上記のコードでsubstr($0,1,250)inを使用してください$0

関連情報