Intereting Posts

Как отображать каждый день месяца в отдельной строке с помощью tr, sed и cal

Как использовать команды, cal , sed tr и pipe для отображения числовых дней (например, 1, 2, 3 и т. Д.) Месяца, каждый день на отдельной строке

Я пробовал:

 cal 12 2015| sed '3,7p' | tr -cs "[:alpha:]" "[\n*]" 

и перейдите к этому выводу:

 December S M Tu W Th F S 

Ты подошел близко.

  1. Вы должны подавить вывод sed перед выборочной печатью строк:

     $ cal 12 2015 | sed -n '3,7p' 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 

    У вашего sed может не быть -n . В этом случае используйте d чтобы удалить все строки, кроме тех, которые вы хотите.

  2. Ваша команда tr заменяет все, кроме alpahabets, и включает цифры. Просто замените пробелы:

     $ cal 12 2015 | sed -n '3,7p' | tr -s ' ' '\n' 1 2 3 4 5 6 7 8 9 10 11 12 

На мой взгляд, диапазон строк в команде sed by @muru . Вы можете сделать это, полагаясь меньше на формат cal :

 cal 12 2015 | sed '/[[:alpha:]]/d' | tr ' ' '\n' |sed -e '/^$/d' 

POSIX не определяет формат для cal , поэтому длина заголовка может варьироваться в зависимости от реализации.