Можно использовать nl
пронумеровать строки (это - цель программы :). Но необходимо извлечь первую неделю в месяце из где-нибудь. Это может быть сделано от ncal
самостоятельно:
$ ncal -w 2 2012 | tail -1 | awk '{print $1}'
5
Мы вставляем это в качестве параметра в nl
опция -v
(начинающий номер строки), и говорят это только числовым осям с числами или пробелами.
$ cal 2 2012 | nl -bp'^[0-9 ]\+$' -w2 -s' ' -v$(ncal -w 2 2012 | tail -1 | awk '{print $1}')
February 2012
Su Mo Tu We Th Fr Sa
5 1 2 3 4
6 5 6 7 8 9 10 11
7 12 13 14 15 16 17 18
8 19 20 21 22 23 24 25
9 26 27 28 29
Это все ужасно хрупко все же. Так или иначе, если Вы не испытываете необходимость cal
больше расширенных настроек, это будет работать. Можно поместить его в файл и замену "$@"
куда я поместил 2 2012
.
Править: Но это НЕПРАВИЛЬНО! Я просто заметил, что первая неделя в январе может иметь номер 52 или 53! Таким образом, мы просто или должны сделать исключение на январь или просто извлечь всю неделю числа из ncal
и примените их к выводу cal
.
Это - решение, я думал первоначально, но я думал (ошибочно), что я упрощу его использование nl
. Это использует paste
, который объединяет файлы бок о бок. С тех пор нет никакого файла, мы должны использовать bashism <(...)
; это - то, чего я старался избегать.
Наш первый "файл" будет списком недельных чисел с двумя пустыми строками вначале:
$ printf ' \n \n' && printf '%2d \n' $(ncal -w 1 2011 | tail -1)
52
1
2
3
4
5
Второй, просто вывод cal
. Все вместе, как параметры к paste
:
$ paste -d' ' <(printf ' \n \n' && printf '%2d \n' $(ncal -w 1 2011 | tail -1)) <(cal 1 2011)
January 2011
Su Mo Tu We Th Fr Sa
52 1
1 2 3 4 5 6 7 8
2 9 10 11 12 13 14 15
3 16 17 18 19 20 21 22
4 23 24 25 26 27 28 29
5 30 31
Намного более грязный и несовместимый, что другой. Пластина En...
Из экранной страницы справочника:
screen -D -R
Attach here and now. In detail this means: If a session is running, then reattach.
If necessary detach and logout remotely first. If it was not running create it
and notify the user.
Как упомянуто для опций -D -RR
, если Вы не знаете состояния своей сессии (сессий), необходимо проверить его с screen -list
.