
2015年3月と4月のカレンダーを印刷してカレンダー項目を並べて表示するにはどうすればよいですか? Unixの場合
答え1
このコマンドは次のとおりです。
paste <(cal 3 2015 | awk '{printf "%-20s\n",$0}') <(cal 4 2015)
次の出力を生成します。
March 2015 April 2015
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 7 1 2 3 4
8 9 10 11 12 13 14 5 6 7 8 9 10 11
15 16 17 18 19 20 21 12 13 14 15 16 17 18
22 23 24 25 26 27 28 19 20 21 22 23 24 25
29 30 31 26 27 28 29 30
注:awkサブコマンドは、左コマンドの最後の行を正しく入力するために使用されます。
編集:cal
機能(オプション)を利用し、より少ないプロセスを必要とする-3
よりコンパクトなバリエーションは次のとおりです。
cal -3 3 2015 | awk '{print substr($0,23)}'
答え2
cal
サポートパラメータがより多くの月を簡単に表示する場合は、-A
現在と一つ来月は次のとおりです。
cal -A1
この方法でオプションを使用して、現在の月と年以外の項目を表示するように指定することもできます-m
。2015年3月これは〜になります:
cal -A1 -m3 2015
しかし、これが利用できない場合は、-A
2つの出力を次のように組み合わせることができますpr
。
pr -t -m <(cal <your_params>) <(cal <your_params>)
または次のようにpaste
:
paste <(cal <your_params>) <(cal <your_params>)
答え3
cal -3| awk '{print substr($0,23)}'