Как получить месяц в верхнем регистре

tail -c +1 -f /Path/to/syscontection.pcap | tcpdump -l -r -
2
26.07.2017, 04:19
5 ответов

Поскольку вы имеете дело с довольно статической частью информации (, за исключением дополнительных вложенных событий ), просто используйте встроенные -в командах оболочки:

function capdate() {
  case "$1" in
  (01) printf "JAN";;
  (02) printf "FEB";;
  (03) printf "MAR";;
  (04) printf "APR";;
  (05) printf "MAY";;
  (06) printf "JUN";;
  (07) printf "JUL";;
  (08) printf "AUG";;
  (09) printf "SEP";;
  (10) printf "OCT";;
  (11) printf "NOV";;
  (12) printf "DEC";;
  (*)  printf "invalid"; return 1;;
  esac
}

Пробный запуск:

$ m=$(capdate 01); echo $?, $m
0, JAN
$ m=$(capdate Caesar); echo $?, $m
1, invalid

Измените текст, если в вашей локали другие date +%bназвания.

0
27.01.2020, 21:48

Вы можете просто передать это наtr(1):

date -d "20170711" +"%b" | tr '[:lower:]' '[:upper:]'
5
27.01.2020, 21:48

Другое решение с использованием awk

date -d "20170711" | date +"%b" | awk '{print toupper($0)}'
0
27.01.2020, 21:48
^      use upper case if possible

Результат:

$ date +%^b
JUL

Бонус :как я получил этот ответ:

мужчина дата Введите /кейс Введите п

22
27.01.2020, 21:48

date -d '20170711' '+%^b' и date -d '20170711' '+%b' | tr '[:lower:]' '[:upper:]'работают хорошо.

Это также можно сделать с помощью расширения параметра:

$ month=$(date -d '20170711' '+%b')
$ echo "${month^^}"
JUL
1
27.01.2020, 21:48

Теги

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