¿Podemos cambiar el delimitador que usa grep?
Creo que, por defecto, grep usa \ncomo delimitador.
linux
shell-script
grep
studiohack
fuente
fuente

$/) y awk (RS). O podrías hacer algo asíecho "$var" | sed 's/<delimiter>/\n/' | grep <pattern>. Muchas respuestas, dependiendo de cuál sea su problema real.Respuestas:
Si le importa la salida,
trpodría funcionar para usted:fuente
echo $my_var | tr @ '\n' | grep blahblah$my varDebe citar la variable para preservar espacios en blanco y líneas nuevas, es decirecho "$my_var" | ....agrepde la Universidad de Arizona le permite establecer el delimitador. No es un reemplazo directo para grep; utiliza un algoritmo diferente (grep aproximado, puede coincidir con errores) y tiene una sintaxis de patrón diferente. Pero es una herramienta útil.Desafortunadamente, creo que debido a problemas de licencia, se han llamado varios proyectos similares
agrep, y no todos son compatibles. Pero creo que todas las versiones le permiten establecer un delimitador.fuente
fuente
d="${1}"lugar de solod="$1"? (2) Debe expandir su advertencia: si se usa con varios archivos, también tiene un problema si alguno de los nombres de archivo contiene '@'. (3) (Selección de Nit) Un verdadero reemplazo / emulador "grep" también funcionaría con cero argumentos de archivo.Reemplace el delimitador cero ('@') con una nueva línea (\ n) antes de grep:
fuente
Cómo es esto ? Cualquier uso?
archivo grep "cadena de búsqueda" | awk 'BEGIN {RS = "\ n"; ORS = "@"} {print}'Establezca '@' a lo que se adapte a sus necesidades.
fuente