Ho un file A con 100 parole separate da nuove righe. Vorrei cercare il file B per vedere se QUALSIASI delle parole nel file A si verificano in esso.Come grep con un elenco di parole
ho provato quanto segue ma non funziona per me:
grep -F A B
Ho un file A con 100 parole separate da nuove righe. Vorrei cercare il file B per vedere se QUALSIASI delle parole nel file A si verificano in esso.Come grep con un elenco di parole
ho provato quanto segue ma non funziona per me:
grep -F A B
È necessario utilizzare l'opzione -f
:
$ grep -f A B
L'opzione -F
fa una ricerca stringa fissa dove, come -f
è per specificando un file di modelli. Potresti volere entrambi se il file contiene solo stringhe fisse e non regex.
$ grep -Ff A B
Si consiglia inoltre l'opzione -w
per la corrispondenza solo parole intere:
$ grep -wFf A B
Leggi man grep
per una descrizione di tutti i possibili argomenti e quello che fanno.
Per trovare un elenco molto lungo di parole file di grandi dimensioni, può essere più efficace utilizzare egrep:
remove the last \n of A
$ tr '\n' '|' <A> A_regex
$ egrep -f A_regex B
+1 per 'spiegazione opzione -w'. –
È -F solo un'ottimizzazione se non vuoi usare le espressioni regolari? – phoenix
@phoenix esattamente. –