Проверьте i8kUtils пакет. Это обычно помещается в носатый (прохладное приложение мониторинга, которое может находиться на Вашем рабочем столе.)
cal | sed 's/^/ /'
cal |
: вывод кал...sed 's/^/ /'
sed, который будет искать начало строк ^
, заменяя их пробелами. Здесь вы можете изменить количество пробелов в соответствии с требуемым форматированием. Чтобы сохранить подсветку текущего дня из cal
, нужно сказать ему, чтобы он выводил "цвет" (подсветку) на трубу. Из man cal
--color [when]
Colorize output. The when can be never, auto, or always. Never will turn off coloriz‐
ing in all situations. Auto is default, and it will make colorizing to be in use if
output is done to terminal. Always will allow colors to be outputed when cal outputs
to pipe, or is called from a script.
N.B. в руководстве, похоже, есть опечатка; мне нужен был =
, чтобы она заработала. Следовательно, последняя команда -
cal --color=always | sed 's/^/ /'
Можно использовать sed
:
cal | sed -e 's/^/ /'
Вышеуказанное отступит от календаря на четыре пробела, вставляя их в начале (^
) каждой строки. Вы можете изменить отступ по своему усмотрению или добавить другие отступы.
Если вы хотите, чтобы он был идеально выровнен по размеру в любом терминале, вы можете использовать printf
и stty
с более уродливым циклом:
read height width < <(stty size)
cal | while read line ; do printf "%${width}s" "$line" ; done
(stty size
является нестандартным, но широко поддерживается)
cal | nl -bn
... будет работать, потому что nl
всегда отступает от входных строк, которые не пронумерованы, чтобы равняться отступу, который он добавил бы к тем, что он делает. По умолчанию nl
не нумерует разделы ввода -h
eader или -f
ooter, а только нумерует строки оди -b
. Если вы также укажете n
ot для нумерации -b
ody строк, он вообще ничего не будет нумеровать и только вставит отступ в каждую строку ввода.
Используйте переключатели разделителя -w
idth и -s
, чтобы настроить размер отступа.
cal; cal | nl -bn
December 2015
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
December 2015
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
Также есть:
cal | pr -to[num]
... где [num]
- это количество пробелов, которое вы хотите вставить в начало каждой строки. pr
обычно печатает 66 строк на страницу , но -t
указывает ему опустить вставки верхнего / нижнего колонтитула и просто распечатать ввод для вывода. Затем используется переключатель поля -o
ffset для вставки столько пробелов, сколько требуется в [num]
в начале каждой выходной строки:
cal; cal | pr -to10
December 2015
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
December 2015
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
Вот пример использования ex
:
ex +"%norm 20I " +%p -scq! <(cal)
Замените 20
на необходимое количество пробелов. Использование «% norm 20I»
более эффективно, чем повторение множества пробелов с заменой - «% s / ^ / /»
.