TEXTMATE: удалить комментарии из документа - PullRequest
0 голосов
/ 25 августа 2010

Я знаю, что вы можете использовать это, чтобы удалить пустые строки

sed /^$/d

и это, чтобы удалить комментарии, начинающиеся с #

sed /^#/d

но как вам удалить все комментарии, начинающиеся с //?

1 Ответ

2 голосов
/ 25 августа 2010

Вам просто нужно "убежать" от косой черты с помощью обратной косой черты.

/\/\//

оператор ^ связывает его с передней частью строки, поэтому ваш пример будет влиять только на комментарии, начинающиеся в первом столбце.Вы также можете попробовать добавить пробелы и табуляции, а затем использовать оператор чередования |выбрать между двумя идентификаторами комментариев.

/^[ \t]*(\/\/|$)/

Редактировать: Если вы просто хотите удалить комментарии из файла, то вы можете сделать что-то вроде:

/(\/\/|$).*/

Я не знаю, что делает оператор 'd' в конце, но приведенное выше выражение должно совпадать для вас по модулю без скобок или оператора чередования (символ '|')

Edit 2: Я только что понял, что используя Mac вы можете «обстреливать» эту команду и использовать системный sed.В этом случае вы можете попробовать поставить кавычки вокруг шаблона поиска, чтобы оболочка не делала ничего сумасшедшего со всеми вашими магическими персонажами.:) В этом случае «d» означает «удалить пространство шаблона», поэтому просто вставьте «d» после последнего примера, который я дал, и вы должны установить.

Редактировать 3: О, я только что понял, вы должны знать, что если вы не поймете что-то внутри кавычек (то есть вы не хотите удалять с # до конца строки, если она в строке!).В этом случае, к сожалению, регулярное выражение становится немного более сложным, если только вы не отказываетесь от проверки строк со строками для комментариев.... но тогда вам нужно будет использовать операцию замены вместо sed, а не search-and-delete-match.... и вам нужно будет сделать больше побегов, и это станет безумием.Я предлагаю поискать в сети помощника sed (есть хорошие тестеры для регулярных выражений, может быть, есть один для sed?).

Извините, что отказался от проекта на данном этапе.Эта «проблема» является той, которую может решить sed, но она становится существенно более сложной на каждом этапе, в отличие от простого взвинчивания Python для ее решения.

...