
Estou tentando fazer algo assim no bash:
grep ( date | awk '{print "2006-" $6}' ) /some/file/here
Mas essa sintaxe está incorreta.
O objetivo é grep /some/file/here para o padrão 2006-2011, onde 2011 é o ano atual.
Responder1
grep "$(date | awk '{print "2006-" $6}')" /some/file/here
"..."
mantém seu conteúdo como um argumento (mesmo se houver espaços em branco).
$(...)
é para "substituição de comando", onde o stdout da execução do comando incorporado será colocado em vigor na linha de comando original. (Outra sintaxe, `...`
, também é comum, mas muito mais difícil de aninhar.)
Mais fácil:
grep "$(date +'2006-%Y')" /some/file/here
Aqui, você usa a capacidade da data para formatar a saída arbitrariamente.
Observe que nenhum deles corresponde a nenhum ano no intervalo 2006-2011; eles correspondem à string literal "2006-2011". Se você quiser igualar qualquer um dos anos, avise-nos.