Я пытаюсь манипулировать многострочными комментариями CoffeeScript в файле с использованием perl. Это мое регулярное выражение:perl regex работает в скрипте, но не при выполнении в командной строке
^\t*###[\S\s]*?^\t*###
Когда я запускаю это в сценарии, где данные данные файла, он делает то, что я ожидаю, и заменяет все многострочные комментарии с «Foo»:
$data =~ s{^\t*###[\S\s]*?^\t*###}{"foo"}gme;
Однако, когда я запускаю это в командной строке файл неизменен:
perl -pi -e 's{^\t*###[\S\s]*?^\t*###}{"foo"}gme' file.coffee
Я использовал подобные команды с различными регулярными выражениями и без опции «т» и все они работают. Это вопрос m, вызывающий проблему? Я уверен, что это что-то простое.
Мне любопытно, если файловая система берет '\ t' как литовую вкладку вместо фактической вкладки регулярных выражений? Что произойдет, если вы попытаетесь избежать обратных косых черт? – brandonscript
Побег с обратной косой чертой как '\\ t'? –
Да, дайте это выстрел. Не знаю, будет ли это работать :) – brandonscript