web-dev-qa-db-ja.com

Calスペース区切り文字なし

私はOpenBSDユーザーであり、私が教えるすべてのコースのTeXコースカレンダーを自動的に生成するawkスクリプトを書いています。システムから実際のカレンダーを取得するには、Unixのcalコマンドを使用します。問題は、calコマンドの出力で区切り文字としてスペースが使用されているため、nawkスクリプトを適用するとあらゆる種類の問題が発生することです。私はcalのソースコードを調べましたが、ソースコードをハッキングする以外に、calコマンドにスペース以外の区切り文字を使用させることはできないようです。カレンダーをこのように見せるための最も簡単な方法は何でしょうか

        June 2012
Su, Mo, Tu, We, Th, Fr, Sa
  ,   ,   ,   ,   ,  1,  2
 3,  4,  5,  6,  7,  8,  9
10, 11, 12, 13, 14, 15, 16
17, 18, 19, 20, 21, 22, 23
24, 25, 26, 27, 28, 29, 30
3

そのためにsedを使用できます。

$ cal|sed -e '1n;s/\(..\)\(.\)/\1,\2/g'
      May 2012      
Su, Mo, Tu, We, Th, Fr, Sa
  ,   ,  1,  2,  3,  4,  5
 6,  7,  8,  9, 10, 11, 12
13, 14, 15, 16, 17, 18, 19
20, 21, 22, 23, 24, 25, 26
27, 28, 29, 30, 31

1nは最初の行を出力し、次の行に移動します。次に、置換は文字を3 x 3で取得し、最初の2つ、次に,、次に3番目を出力します。

5
Mat