Le espressioni regolari sono disponibili in molti gusti diversi. Quello che stai mostrando è un'espressione regolare simile al Perl (PCRE, "Espressione regolare compatibile Perl").
grepfa espressioni regolari POSIX. Queste sono espressioni regolari di base (BRE) ed espressioni regolari estese (ERE, se greputilizzato con l' -Eopzione). Consultare il manuale per re_formato regexqualsiasi altro manuale simile a cui grepfa riferimento il manuale sul proprio sistema o i testi POSIX standard a cui ho appena collegato.
Se usi GNU grep, saresti in grado di usare espressioni regolari simili al Perl se lo utilizzassi grepcon l' opzione grepspecifica GNU -P.
Si noti inoltre che greprestituisce le linee per impostazione predefinita, non le sottostringhe dalle linee. Ancora una volta, con GNU grep(e alcune altre grepimplementazioni), è possibile utilizzare l' -oopzione per ottenere solo i bit che corrispondono all'espressione data da ciascuna riga.
Si noti che entrambe -Pe -osono estensioni non standard della specifica POSIX digrep .
Se non si utilizza GNU grep, è possibile utilizzare sedinvece per ottenere il bit tra la stringa prefixe la fine della riga:
sed -n 's/.*prefix\(.*\)/\1/p' file
Quello che fa è stampare solo le linee che sedriescono ad applicare la sostituzione data a. La sostituzione sostituirà l'intera riga che corrisponde all'espressione (che è un BRE), con il pezzo di essa che si verifica dopo la stringa prefix.
Si noti che se prefixsu una riga sono presenti più istanze , la sedvariazione restituirà la stringa dopo l' ultima , mentre la grepvariazione GNU restituirà la stringa dopo la prima (che includerebbe le altre istanze di prefix).
La sedsoluzione sarebbe portatile per tutti i sistemi simili a Unix.