Как Распечатать календарь на март и апрель 2015 и показать календарные записи бок о бок? использование UNIX

показывает две линии с наибольшим количеством различий между

awk '{c=$2-a[2];
      if(c<0)c=-c;
      if(+a[2]&&c>b){b=c;d=a[1]" "a[2]"\n"$0};
      split($0,a," ")}
  END{print "Difference is",b,"between:\n"d}'
0
20.03.2015, 23:30
3 ответа
cal -3| awk '{print substr($0,23)}'
0
28.01.2020, 02:20

Эта команда:

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)}'
3
28.01.2020, 02:20

Если ваш cal поддерживает параметр -A, его легко отображать больше месяцев - вы можете отображать текущий и один месяц в будущем, как этот:

cal -A1

Таким образом, используя опцию -m, можно также указать для отображения, кроме текущего месяца и года, для March 2015 будет:

cal -A1 -m3 2015

But if you can't use -A, можно комбинировать два выхода с pr:

pr -t -m <(cal <your_params>) <(cal <your_params>)

или с paste:

paste <(cal <your_params>) <(cal <your_params>)
1
28.01.2020, 02:20

Теги

Похожие вопросы