
Estoy intentando hacer algo como esto en bash:
grep ( date | awk '{print "2006-" $6}' ) /some/file/here
Pero esa sintaxis es incorrecta.
El objetivo es buscar /algunos/archivos/aquí para el patrón 2006-2011, donde 2011 es el año actual.
Respuesta1
grep "$(date | awk '{print "2006-" $6}')" /some/file/here
"..."
mantiene su contenido como un argumento (incluso si hay espacios en blanco).
$(...)
es para "sustitución de comandos", donde la salida estándar de ejecutar el comando incrustado se colocará en la línea de comandos original. (Otra sintaxis, `...`
, también es común pero mucho más difícil de anidar).
Más fácil:
grep "$(date +'2006-%Y')" /some/file/here
Aquí, utiliza la capacidad de la fecha para formatear la salida de forma arbitraria.
Tenga en cuenta que ninguno de estos coincide con ningún año en el rango 2006-2011, coinciden con la cadena literal "2006-2011". Si desea igualar algún año, háganoslo saber.