Как создать команду grep с аргументом переменной в ударе?

Я пытаюсь сделать что-то вроде этого в ударе:

grep ( date | awk '{print "2006-" $6}' ) /some/file/here

Но тот синтаксис является неправильным.

Цель к grep/some/file/here для шаблона 2006-2011, где 2011 является текущим годом.

0
задан 09.04.2011, 20:35

1 ответ

grep "$(date | awk '{print "2006-" $6}')" /some/file/here

"..." содержит его содержание как один аргумент (даже если существует пробел).

$(...) для "замены команды", куда stdout от выполнения встроенной команды будет помещен в место на исходной командной строке. (Другой синтаксис, `...`, также распространено, но намного более тверд к вложенному множеству.)

Легче:

grep "$(date +'2006-%Y')" /some/file/here

Здесь, Вы используете способность даты отформатировать вывод произвольно.

Обратите внимание, что ни один из них не соответствует никакому году в диапазоне 2006-2011, они соответствуют литеральной строке "2006-2011". Если Вы хотите соответствовать какому-либо году, сообщить нам.

3
ответ дан 24.11.2019, 04:34

Теги

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