Ack пошук буквальних рядків [закрито]


15

Мені не доводиться уникати речей, коли я хочу шукати частину HTML-тегу.

Як я можу шукати саме те, що я набираю, не потребуючи втечі?

напр

ack-grep 'console.log(foo'

Я отримав:

Unmatched ( in regex; marked by <-- HERE in m/console.log( <-- HERE par/

Використовуєте іншу оболонку? Поставте це в лапки? Помістіть пошуковий рядок у файл, я підозрюю, що ack-grep може отримати рядок з файлу. Можливо, ви навіть можете отримати пошук за допомогою stdin.
Зоредаче

@Zoredache Я додав кращий приклад .. Мені не хочеться бігти (.. а що ви маєте на увазі під кращою оболонкою?
тестер

Я маю на увазі, що всі властивості, на які ви скаржитеся, обробляються вашою оболонкою (bash / zsh / все, що завгодно). Проблема не має нічого спільного з інструментом. Проблема полягає в тому, що оболонка не надсилає те, що ви вводите.
Зоредаче

Ага, я думаю, я знайшов це .. -Q використовує це буквально ..
тестер

Відповіді:


18

Вам належить уникнути виразки.

ack 'console\.log\(foo'

(Вам слід уникнути, .щоб ви не відповідали "consoleflog", тому що .відповідає будь-якому одному символу)

І якщо ви бажаєте цього не робити, зробіть це, щоб цитувати кожен метахарактер автоматично.

ack -Q 'console.log(foo'

2
\ Q не працює на моєму сервері. ack '\Qconsole.log(foo' ack: Invalid regex '\Qconsole.log(foo': Unmatched ( in regex; marked by <-- HERE in m/\Qconsole.log( <-- HERE foo/
Себастьян

Я помилився в \Qприкладі і видалив його з відповіді. Дякую, @ Sébastien
Енді Лестер
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.