Как использовать регулярное выражение для удаления строк без слова? - PullRequest
16 голосов
/ 11 августа 2011

Я использую textmate для редактирования файла. Я хотел бы удалить все строки, не содержащие слова. Вот пример.

apple ipad
hp touch pad
samsung galaxy tab
motorola xoom

Как мне удалить всю строку с помощью панели слов и получить этот результат, используя регулярное выражение ??

apple ipad
hp touch pad

Спасибо всем.

Ответы [ 3 ]

35 голосов
/ 11 августа 2011

Заменить ^(?!.*pad.*).+$ пустой строкой

5 голосов
/ 11 августа 2011

Я не уверен, что делать подобные вещи с помощью регулярных выражений, но вы можете легко использовать grep для этого.

Например, если файл textfile содержит это:

apple ipad
hp touch pad
samsung galaxy tab
motorola xoom

Откройте Терминал и выполните эту команду:

grep pad textfile

Это выведет это:

apple ipad
hp touch pad

Если вы хотите сохранить вывод в файл, вы можете сделать что-то вроде этого:

grep pad textfile > filteredfile
2 голосов
/ 11 августа 2011

Это выражение выберет строки, содержащие слово pad: ^.*pad.*$

Символ ^ обозначает начало строки, символ $ обозначает конец, а .* допускает любое количество символов, окружающих слово.

Это может быть слишком широким диапазоном для вашей цели в его текущем состоянии - требуется более конкретная информация.

...