показывает две линии с наибольшим количеством различий между
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}'
Эта команда:
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)}'
Если ваш 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>)