L'asterisco è solo un file operatore di ripetizione , ma devi dirgli cosa ripeti. /*abc*/corrisponde a una stringa contenente ab e zero o più c (perché il secondo * è sulla c; il primo è privo di significato perché non c'è nulla da ripetere). Se vuoi abbinare qualcosa, devi dire .*: il punto significa qualsiasi carattere ( entro determinate linee guida ). Se vuoi abbinare solo abc, potresti semplicemente dire grep 'abc' myFile. Per la tua corrispondenza più complessa, devi usare .*- grep 'abc.*def' myFileabbinerà una stringa che contiene abc seguito da def con qualcosa in mezzo.
Aggiornamento in base a un commento:
*in un'espressione regolare non è esattamente lo stesso di * nella console. Nella console, * fa parte di un costrutto glob e funge semplicemente da carattere jolly (ad esempio ls *.logelencherà tutti i file che terminano con .log). Tuttavia, nelle espressioni regolari, * è un modificatore, il che significa che si applica solo al carattere o al gruppo che lo precede. Se si desidera che * nelle espressioni regolari agisca come un carattere jolly, è necessario utilizzare .*come accennato in precedenza: il punto è un carattere jolly e la stella, quando si modifica il punto, significa trovare uno o più punti; cioè. trova uno o più caratteri.