Stai cercando un nome file o una parola all'interno di un file? grep cerca all'interno dei file, che sembra essere quello che vuoi.
grep usa espressioni regolari - in effetti, questo è ciò che la parte "re" rappresenta. Quindi, non utilizza i normali caratteri jolly bash; cioè, abc*
non troverebbe le parole che iniziano con abc, troverebbero le parole che iniziano con ab, quindi zero o più c seguono. Ma sì, se semplicemente gli dai uno schema, lo troverà ovunque, senza la conoscenza di intere parole. Se si desidera trovare parole intere, è necessario creare un'espressione regolare per dirlo.
Ma, come la maggior parte dei comandi, devi mettere i nomi dei file alla fine del comando, quindi il tuo esempio rimarrà lì e aspetterà il nome del file.
Come diceva @plink, usare
grep -r -o -i "your_string" *
(o *.*
, o altro filespec). Gli errori possono essere ignorati. Se si verificano molti errori, è possibile aggiungere 2>/dev/null
alla fine, che reindirizzerà stderr a un dispositivo null.
grep -r -o -i "your_string" *
(con "virgolette).