Зірочка - це просто оператор повторення , але вам потрібно сказати, що ви повторюєте. /*abc*/відповідає рядку, що містить ab та нуль або більше c (тому що другий * знаходиться на c; перший є безглуздим, оскільки немає чого його повторювати). Якщо ви хочете, щоб щось відповідало, вам потрібно сказати .*- крапка означає будь-який символ ( у межах певних вказівок ). Якщо ви хочете просто зіставити abc, ви можете просто сказати grep 'abc' myFile. Для більш складного збігу вам потрібно використовувати .*- grep 'abc.*def' myFileвідповідатиме рядку, який містить abc, за яким слід def з чимось за бажанням між ними.
Оновлення на основі коментаря:
*у регулярному виразі не зовсім те саме, що * у консолі. У консолі * є частиною конструкції glob і виконує лише функцію підстановки (наприклад, ls *.logбуде перераховано всі файли, які закінчуються на .log). Однак у регулярних виразах * є модифікатором, що означає, що він застосовується лише до символу або групи, що передує йому. Якщо ви хочете, щоб * у регулярних виразах діяв як підстановочний знак, вам потрібно використовувати, .*як уже згадувалося раніше, - крапка є символом підстановки, а зірка, змінюючи крапку, означає знайти одну або кілька крапок; тобто знайти одного або декількох персонажів.