GNU/Linux >> Linux Esercitazione >  >> Linux

Leggere i modelli Grep da un file?

Ho un paio di grandi file di testo e nel file UNIQS.txt Ho un elenco di stringhe da grep da un altro file. Il codice che uso è

grep -f UNIQS.txt EEP_VSL.uniqs.sam > UNIQ_templates.sam

che non fa nulla – il file generato è vuoto. Ma quando lo faccio

grep -F -f UNIQS.txt EEP_VSL.uniqs.sam > UNIQ_templates.sam

funziona correttamente. Questo mi confonde perché non pensavo a grep interpreterebbe le voci in UNIQS.txt come pattern regexp senza virgolette e barre e così via nel file (che non ci sono). In generale, se stai ricevendo i pattern da un file, penserà automaticamente che siano pattern regexp?

Modifica: Nel UNIQS.txt file, ci sono stringhe separate da una nuova riga del modulo

HWI-ST365:215:D0GH0ACXX:2:1101:10034:186783

(chiamati nomi di modelli) e il file EEP_VSL... colonne separate da tabulazioni, con circa 14 colonne e la prima colonna è il nome del modello, quindi in pratica voglio estrarre la riga corrispondente a ciascun modello nel file.

Risposta accettata:

Il -f opzione specifica un file in cui grep legge i modelli. È proprio come passare i modelli sulla riga di comando (con il -e opzione se ce n'è più di uno), tranne per il fatto che quando chiami da una shell potrebbe essere necessario citare il modello per proteggere i caratteri speciali in esso contenuti dall'espansione della shell.

L'argomento -E o -F o -P , se presente, dice a grep in quale sintassi sono scritti i pattern. Senza argomenti, grep si aspetta espressioni regolari di base; con -E , grep si aspetta espressioni regolari estese; con -P (se supportato), grep si aspetta espressioni regolari Perl; e con -F , grep si aspetta stringhe letterali. Non importa se i pattern provengono dalla riga di comando o da un file.

Nota che le stringhe sono sottostringhe:se passi a+b come modello quindi una riga contenente a+b+c è abbinato. Se vuoi cercare righe contenenti esattamente una delle stringhe fornite e non più, passa il -x opzione.


Linux
  1. Come rimuovere i "dati binari" da un file di testo (ad es. Bash_history)?

  2. Lettura di righe da un file con Bash:per vs. Mentre?

  3. comando Linux grep

  4. Lettura da un file in assembly

  5. Come eseguire il "grep" di un flusso continuo?

Come trovare una stringa in un file su Linux

Come estrarre indirizzi e-mail da file di testo in Linux

Crea un PEM da un file PPK

In che modo install -c è diverso da cp

Linux:grep da determinate righe alla fine del file

grep coppie di modelli e file