Tengo un par de archivos de texto grandes y en el archivo UNIQS.txttengo una lista de cadenas grepde otro archivo. El código que uso es
grep -f UNIQS.txt EEP_VSL.uniqs.sam > UNIQ_templates.sam
que no hace nada: el archivo generado está vacío. Pero cuando lo hago
grep -F -f UNIQS.txt EEP_VSL.uniqs.sam > UNIQ_templates.sam
Funciona correctamente. Esto me confunde porque no pensé grepque interpretaría las entradas UNIQS.txtcomo patrones regexp sin comillas y barras y así sucesivamente en el archivo (que no hay). ¿Es el caso en general que si obtiene los patrones de un archivo, automáticamente pensará que son patrones regexp?
Editar: en el UNIQS.txtarchivo, hay cadenas separadas por nueva línea del formulario
HWI-ST365:215:D0GH0ACXX:2:1101:10034:186783
(llamados nombres de plantilla) y las EEP_VSL...columnas separadas por la pestaña del archivo , con aproximadamente 14 columnas y la primera columna es el nombre de la plantilla, así que básicamente quiero extraer la línea correspondiente a cada plantilla en el archivo.

-x-Fbandera. Mi conjetura es que-en la línea de muestra anterior hace que esto se lea como una secuencia de caracteres. ¿No requeriría eso también corchetes? He probado con algunos archivos de muestra pero no he llegado a una conclusión.-F. Haría la diferencia con personajes como\[*^$.-Fbandera.Tuve el mismo error, no resuelto con la buena respuesta de @gilles. Mirando más de cerca en el archivo de entrada, encontré 2 líneas nuevas al final. Sin estos, el éxito solo era necesario: grep -i file_pattern_input file
(GNU grep 3.1, archivo de entrada de más de 5000 registros, archivo de coincidencia / patrón 2536, sabía que todo el 2536 tenía que estar en el archivo. Con las nuevas líneas obtuve todas las líneas del archivo y sin solo las 2536 líneas coincidentes)
fuente