Відповіді:
Існує простий спосіб досягти цього. Вам потрібно виконати 3 дії.
Перейдіть до меню Пошук> Знайти ...> Виберіть вкладку "Позначити". Активуйте регулярні вирази. Шукати ^<Path>
( ^
для початку лінії). Не забудьте встановити прапорець "Закладки рядків" і натисніть "Позначити всі"
==> Усі рядки, які ви хочете зберегти, отримали закладку
Перейдіть до меню "Пошук - Закладка - Зворотна закладка"
==> Усі рядки, які ви хочете видалити, закладені в закладки.
Перейдіть до меню "Пошук - Закладка - Видалити закладки"
==> Усі рядки із закладками видалено.
Це фактично можна зробити в два етапи, як 6.3. Я думаю, що це можна зробити і раніше, ніж у мене було 5,9, коли я вперше спробував це.
Використання поста стеми як основи цієї відповіді. Зараз є ще один менший крок. Позначте лінії та видаліть немарковані лінії. Зроблено. Детальні інструкції слідують.
Меню пошуку "Знайти". У діалоговому вікні Знайти натисніть на вкладку «Позначити». Активуйте регулярні вирази. Шукати ^<Path>
( ^
для початку лінії). Не забудьте встановити прапорець "Закладки рядків" і натисніть "Позначити всі"
==> Усі рядки, які ви хочете зберегти, мають закладку
Меню пошуку -> Закладка -> Видалити немарковані лінії.
==> Видалено всі NON закладені рядки.
^
слово в пошуковий термін, а також використовувати регулярне вираження. Сподіваюся, що це комусь допоможе.
Регекс замінити
(?!^.*test.*$)^.+
замініть тест на запитуваний текст
замінити
[\r\n]{2,}
з \r\n
Використовуйте ^(?!<Path>).*\r\n
для заміни матчів порожнім рядком. Узагальнена версія буде ^(?!.*?test).*\r\n
. Це не видалить порожній рядок у кінці файлу. Усі інші рядки видаляються, включаючи кілька послідовних порожніх рядків.
(?!)
це негативний погляд вгору. ^.*test.*$
вибирає весь рядок, який містить запитуваний текст.
[\r\n]{2,}
відповідає будь-якому, \r\n
що трапляється більше, ніж раз - це рядок Windows New. якщо у вас є Linux або інша операційна система, можливо, вам доведеться зіпсувати це. друге - замінити його однією зворотною лінією.
\r\n
EOL згадується в пості , що використовує Windows , і , отже , може або не може бути те , що ви шукаєте. Часто для середовищ Linux це просто \n
, або в середовищах Mac просто \r
, тому якщо ви витягнете файл з будь-якого, це не буде EOL у стилі Windows. Однак якщо ви завантажуєте через тригери режиму FileZilla та ASCII, вони можуть змінити їх назад у Windows EOL (як \n
у \r\n
). Тож якщо регулярний вираз не працює, перевірте стиль EOL, перейшовши до "Перегляд> Показати символи> Показати кінець рядка". CR = \r
. LF = \n
.
Мені здається, що найпростіший спосіб - просто скористатися функцією «Знайти все в поточному документі», а потім скопіювати результати в новий файл або вибрати всі та замінити у поточному.
Це знайде всі рядки, що містять ваш текст, і перелічить їх внизу. Просто клацніть правою кнопкою миші на результати пошуку та скопіюйте / вставте.
\tLine [\d]*:
. Ще чудова відповідь.
Перейдіть до меню Пошук -> Знайти ... -> Активувати регулярні вирази. Шукати "^ Шлях " (^ - для початку рядка).
Натисніть кнопку "Знайти все в поточному документі".
Вікно "Знайти результат" з'явиться з усіма рядками рядків. Виберіть копіювати / вставити їх на нову вкладку в Блокноті ++.
На цій новій вкладці потрапило: Пошук у меню -> Замінити ... -> Активувати регулярні вирази.
У полі "Знайти що:" використовуйте шаблон: "Рядок \ d +:". Залиште поле "Замінити на:" порожнім.
Клацніть на кнопку «Замінити все».
За умови, що ви дійсно хочете відповідати, <Path>
а не шлях до файлової системи, ви можете спробувати це з командного рядка за допомогою Perl:
perl -pe " if ($_ !~ /<Path>/) { s/$_// } " < in.txt > out.txt
Він працював із Strawberry Perl у Windows, тому відрегулюйте відповідно, якщо результати не такі, які ви очікували.
Це незграбно, але скопіюйте все це в Excel , а потім використовуйте =IF(LEFT(A1,6)="<Path>",A1,"")
та скопіюйте цю формулу до кінця. Потім скопіюйте його назад у Блокнот ++. Це не ідеально, але це досить просто (якщо у вас є Excel). Попередження: Не буде добре працювати з відступними лініями (Excel змістить стовпці тощо).
Немає простого способу зробити те, що ви хочете, із Notepad ++. Вам потрібно буде завантажити або завантажити програму на свій комп'ютер, або щось скриптувати в VB (я вважаю, ви перебуваєте в Windows).
За допомогою sed можна зробити один із двох способів. Утиліта sed - це улюблена версія * nix, і її можна знайти для Windows у великих людей на GnuWin ( http://gnuwin32.sourceforge.net/packages/sed.htm ). Ви б завантажили цю програму, а потім запустіть свою команду з командного рядка.
Видалити всі рядки, що не містять:
sed -i '/^<PATH>/!d' file
Роздрукуйте всі рядки, що містять новий файл:
sed -n '/^<PATH>/p' file > newfile
Я пропоную вам використовувати друк рядків, які ви хочете, до нового файлу. Причиною цього є те, що ви, ймовірно, не отримаєте заяву регулярного вираження вперше. Утиліта sed використовує синтаксис Regular Expression Basic (див. Посилання на http://www.regular-expressions.info/reference.html ). Якщо це щось на кшталт * nix шляху (/ var / www), вам знадобиться уникнути / символу, щоб ваш регулярний вираз працював.
Приклад: sed -n '/^\/var\/www/p' file > newfile
Це дозволить роздрукувати всі рядки, які починаються з '/ var / www'. Якби я подав, щоб уникнути символу /, тоді команда видала б помилку. Ви можете уникати спеціального символу (наприклад, /) із символом зворотної косої лінії \.
Використовуйте пошук-> Замініть і введіть звичайний вираз, як ^[^ ].*
і замініть все порожнім рядком, використовуючи Regular expression
. Наступним кроком є пошук порожніх рядків, які шукають \n\n
заміну з \n
використанням Extended
декількох разів до 0 occurrences were found.
(використання \r\n\r\n
та \r\n
залежно від формату файлу). Якщо у вас дуже багато порожніх рядків підряд, скоріше використовувати \n\n\n\n\n\n\n
або навіть більше \n
: s у рядку пошуку.