2016-02-24 3 views
1

У меня есть большой текстовый файл в Notepad ++, где я бы хотел найти определенные строки. Скажем, это выглядит примерно так:Отрицательный взгляд, чтобы исключить целую линию на основе набора символов?

 
I don't like numbers 1 2 and 3
I don't like most symbols either, ! @ and # are bad
But I do like lines with no numbers and only symbols . and *

В выше, я хотел бы исключить эти строки в файле, которые имеют номера и все символы, за исключением периода или (скажу) звездочку.

Теперь я знаю, что негативный взгляд/позади не работает таким образом, но я хочу сказать, что это что-то вроде помощника отрицательного вида условного типа (?! = [\ D]) или [^ \ d] вместе с поиск строк со словами типа^[A-Za-z. * \ s] + $, но где вся строка отклоняется в отрицательном совпадении независимо от того, где в строке она встречается.

+0

Почему не будет позитивного соответствия работе? 'cat myfile.txt | grep -E '^ [A-Za-z * \. \ s] + $'> newfile.txt' – autodidacticon

+0

Спасибо, но это в Notepad ++ .... не знаю Linux! –

ответ

0

Похоже, что вы хотите удалить все строки, которые не соответствуют шаблону ^[A-Za-z.*\s]+$. В этом случае, просто используйте

Найти Что: (^[A-Za-z.*\s]+$\R*)|.*\R*
Заменить: $1

Детали:

  • (^[A-Za-z.*\s]+$\R?) - Захват группы # 1 (далее с $1 обратной ссылки) Соответствие:
    • ^ - начало строки
    • [A-Za-z.*\s]+ - 1 или более символьных, которые являются ASCII буквой, ., * или пробельным (\s) (заменить \h только соответствовать горизонтальному wjitespaces)
    • $ - конец строки
    • \R* - 0 или больше разрывы строк
  • | - или
  • .* - any 0+ chars
  • \R* - 0 или больше разрывов строк.

$1 Вставки хорошие линии назад.

enter image description here

Смежные вопросы