Объедините строку с переменной в команде GREP

Вот упрощенный способ:

print_last_arg () {
  if [ "$#" -gt 0 ]
  then
    s=$(( $# - 1 ))
  else
    s=0
  fi
  shift "$s"
  echo "$1"
}

(обновлено на основе утверждения @ cuonglm о том, что исходный код завершился неудачно, когда не было передано аргументов; теперь отображается пустая строка - при желании измените это поведение в предложении else )

1
07.11.2018, 09:29
2 ответа

В AIX с помощью/bin/ksh93:

grep "_$(printf '%(%Y%m%d)T' yesterday)" filename

Или:

grep "$(printf '_%(%Y%m%d)T' yesterday)" filename

или:

yesterday=$(printf '%(%Y%m%d)T' yesterday)
grep "_$yesterday" filename

Обратите внимание, что

TZ=aaa24 date

даст дату на 24 часа раньше даты UTC, поэтому действителен только для предоставления вам вчерашней даты, когда местное время следует за UTC (, хотя он может дать вам правильную дату в некоторые часы дня в другое время зоны ).

3
27.01.2020, 23:31

Я не знаю, что это за "ааа24" в вашем вопросе, но это может вам помочь:

Используйте подстановку команд для оценки команды dateперед запуском grep.

grep $(date +%Y%m%d) foo
-1
27.01.2020, 23:31

Теги

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