TextMate найти текст, а затем удалить всю строку?
Я покажу вам, что я хочу сделать с помощью команды textmate или связки:
Допустим, у нас есть следующий документ:
foo
diddy
bah
foo
foobah
diddy
Я хочу найти и удалить все строки, соответствующие bah
, желаемый выходной сигнал в этом случае будет:
foo
diddy
foo
diddy
Спасибо!
2 ответа
С документом, который вы хотите отфильтровать,
Cmd-F, чтобы вызвать окно Finder
Далее, под двумя полями ввода текста, нажмите Регулярное выражение
В текстовом поле " Найти" введите это регулярное выражение (без пробелов):
^ *? ба *? $
В текстовом поле " Заменить" ничего не вводите - убедитесь, что оно пустое, т. Е. Без пробелов
С курсором в начале документа, который вы хотите отфильтровать, нажмите одну из кнопок внизу окна поиска - например, Заменить все, чтобы удалить все совпадающие строки за один шаг, или Заменить и Найти, чтобы пройти линии по одному
Вот и все.
Вот более автоматизированный способ сделать то же самое:
в строке меню выберите Filter Through Command из выпадающего меню Text
введите это в текстовое поле в верхней части небольшого окна, которое появляется:
sed '/ ^. * Ба * $ / d '
выберите Document as Input и выберите Replace Document as Output
Нажмите Выполнить
[ Примечание: я вставил пробелы между токенами регулярных выражений в обоих примерах, потому что по какой-то причине звездочки не отображались на странице HTML]
Построение поверх ответа @doug Поскольку пользователь хочет удалить строку после совпадения, решение с использованием Regex
^ . * ? bah . * ? $\n
Соответствие \n в конце удалит строку