Добавить текст в начало каждой другой строки в Notepad ++

Я хочу сделать следующее:

  • Добавьте <title> в начало строк 1, 3, 5 и т. Д. (Сотни строк в файле блокнота ++)
  • Добавить </title> в конец строк 1, 3, 5 и т. Д. …

Затем:

  • Пакет заменяет определенные строки #s в xml с определенным текстом (строками) из второго файла xml в Windows 7
  • Как перенести настройки Notepad ++?
  • Выбор диапазона строк в Notepad ++
  • Найти и заменить сразу несколько разных значений
  • Не удалось получить макросы в блокноте ++ более новая версия
  • Есть ли способ сохранить сводку кода в Notepad ++?
    • Добавьте <link> в начало четных строк (например, строки 2, 4, 6, 8 и т. Д.)
    • Добавьте </link> в конец четных строк (например, строки 2, 4, 6, 8 и т. Д.)

  • Как я могу отложить завернутый текст в Notepad ++?
  • Выбор диапазона строк в Notepad ++
  • Visual Studio 2010: возможно ли заставить редактор использовать ANSI, а не UTF-8?
  • Как изменить строку в Notepad ++?
  • Ctrl + Backspace вставляет небольшой ящик вместо стирания
  • Не удалось получить макросы в блокноте ++ более новая версия
  • 6 Solutions collect form web for “Добавить текст в начало каждой другой строки в Notepad ++”

    Лично я думаю, что было бы намного легче сделать это, написав простой скрипт perl / python, но вот как вы можете это сделать в Notepad ++. Я попробовал это с некоторыми примерами данных, и он работал так, как вам хотелось.

    • Откройте файл, который хотите изменить.
    • Перейдите к началу первой строки в файле
    • Нажмите кнопку «Макро» -> «Начать запись» в меню
    • Вставьте (название), нажмите кнопку конца, чтобы перейти к концу строки, вставить (/ название)
    • Нажмите кнопку «домой», перейдите к началу строки
    • Нажмите кнопку вниз, чтобы перейти к строке 2
    • Вставьте (ссылку), нажмите кнопку конца, чтобы перейти в конец строки, вставить (/ link)
    • Нажмите кнопку «домой», перейдите к началу строки
    • Нажмите кнопку вниз, чтобы перейти к строке 3
    • Нажмите кнопку Macro -> Stop Recording в меню

    Теперь вы можете воспроизвести макрос, сколько раз вы хотите, и он будет повторять / ополаскивать действия.

    Возможно, вы можете подойти к этому по-другому, чем «альтернативные строки» (что было бы лучше всего использовать на языке сценариев).

    Предполагая, что строки, которые вы хотите добавить в «ссылку», содержат то, что идентифицирует их как ссылку, вы можете сначала заменить эти строки, а затем предположить, что любые левые должны быть заголовками. Так что скажем, что ваши линии ссылок содержат «http»:

    1. Control-H, чтобы вызвать диалог замены
    2. Введите (http.*) качестве критерия поиска (найдите в нем какую-либо строку с http и сохраните в переменной \1
    3. Введите (link)\1(/link) в качестве критерия замены – замените то, что было найдено на предыдущем шаге, с самим собой, содержащимся в тегах ссылок
    4. Заменить все – теперь все ваши линии ссылок заключены, все оставшиеся строки должны быть заголовками

    1. Введите ^([^(\(link\))]*)$ в качестве критерия поиска (найдите любую строку, которая не содержит (link)
    2. Введите (title)\1(/title) в качестве критерия замены
    3. Заменить все

    Затем он будет содержать оставшиеся строки с тегами заголовка.

    Изменить: этот ответ был написан и протестирован при использовании Notepad ++ версии 5.9.8, и он будет работать для текущей версии Notepad ++ (v 6.2) и большинства предыдущих версий. После того, как я написал этот ответ, я обновил Notepad ++ до текущей версии 6.2 и обнаружил, что решение стало намного проще. Итак, если вы используете Notepad ++ версии 5.9.8 (или более ранние версии) и не хотите обновлять текущую версию Notepad ++, этот ответ будет работать для вас. Если вы обновили до Notepad ++ версии 6 или более поздней версии, посмотрите другой мой ответ, который намного проще.

    Используя это как исходный файл:

     This is line 1 This is line 2 This is line 3 This is line 4 This is line 5 This is line 6 This is line 7 

    Шаг 1. Поместите уникальный тег с « <title> » и « </title> » в начале и конце всех строк:

     In "Regular Expression" Mode (F: is Find expression, R: is Replace expression): F:^(.*)$ R:<##@@Begin@@##><title>\1</title><##@@End@@##> 

    Результаты в этом:

     <##@@Begin@@##><title>This is line 1</title><##@@End@@##> <##@@Begin@@##><title>This is line 2</title><##@@End@@##> <##@@Begin@@##><title>This is line 3</title><##@@End@@##> <##@@Begin@@##><title>This is line 4</title><##@@End@@##> <##@@Begin@@##><title>This is line 5</title><##@@End@@##> <##@@Begin@@##><title>This is line 6</title><##@@End@@##> <##@@Begin@@##><title>This is line 7</title><##@@End@@##> 

    Шаг 2. Удалите все «новые строки» (\ r \ n):

     In "Extended" mode: F:\r\n R: 

    Результаты в этом (весь файл находится в одной строке):

     <##@@Begin@@##><title>This is line 1</title><##@@End@@##><##@@Begin@@##><title>This is line 2</title><##@@End@@##><##@@Begin@@##><title>This is line 3</title><##@@End@@##><##@@Begin@@##><title>This is line 4</title><##@@End@@##><##@@Begin@@##><title>This is line 5</title><##@@End@@##><##@@Begin@@##><title>This is line 6</title><##@@End@@##><##@@Begin@@##><title>This is line 7</title><##@@End@@##> 

    Шаг 3. Измените « <title> » и « </title> » на « <link> » « </link> » во второй строке каждые две строки («четные» строки):

     In "Regular Expression" Mode: F:<##@@Begin@@##>(<title>.*?</title><##@@End@@##>)<##@@Begin@@##><title>(.*?)</title>(<##@@End@@##>) R:\1<link>\2</link>\3 

    Результаты в этом (весь файл по-прежнему находится в одной строке):

     <title>This is line 1</title><##@@End@@##><link>This is line 2</link><##@@End@@##><title>This is line 3</title><##@@End@@##><link>This is line 4</link><##@@End@@##><title>This is line 5</title><##@@End@@##><link>This is line 6</link><##@@End@@##><title>This is line 7</title><##@@End@@##> 

    Шаг 4. Замените тег «end» на «Newline» (\ r \ n):

     In "Extended" mode: F:<##@@End@@##> R:\r\n 

    Результаты в этом:

     <title>This is line 1</title> <link>This is line 2</link> <title>This is line 3</title> <link>This is line 4</link> <title>This is line 5</title> <link>This is line 6</link> <title>This is line 7</title> 

    Итак, 4 шага. Неплохо, если вам нужно сделать это только один раз или только очень иногда.

    Большим ограничением с помощью Notepad ++ является то, что вы не можете комбинировать поиск и замены «Расширенный» и «Регулярный поиск». Таким образом, в режиме «Расширенный» вы можете искать «Newlines», но вы не можете искать «подстановочные знаки» (*.?), А в режиме «Regex» вы можете искать с помощью «подстановочных знаков», но вы не можете искать " Newlines».

    Если вам нужно сделать это на регулярной основе, было бы гораздо проще использовать Textpad ( http://textpad.com ), вы можете сделать это за два шага (если есть вероятность, что файл имеет «нечетные» значения, Количество строк "):

    Шаг 1. добавьте « <title> » « </title> » ко всем строкам:

     In "Regular Expression" Mode (F: is Find expression, R: is Replace expression): F:^(.*)$ R:<title>\1</title> 

    Шаг 2. Измените « <title> » и « </title> » на « <link> » и « </link> » во второй строке каждые две строки («четные» строки):

     Still in "Regular Expression" Mode: F:^(<title>.*</title>)\n<title>(.*)</title> R:\1\n<link>\2</link> 

    С Textpad, если вы знаете, что файл всегда имеет «четный» номер, если строки, вы можете сделать все за один снимок:

     In "Regular Expression" Mode: F:^(.*)\n(.*)\n R:<title>\1</title>\n<link>\2</link>\n 

    Вы также можете легко сделать эту замену awk.

    Изменить: вот некоторая информация и пример этого с awk …

    Awk – это скриптовый язык программирования, который был создан для unix, но теперь доступен для Windows, и я считаю также, что для Mac.

    Основное использование awk – обработка (обработка и фильтрация) текстового вывода и текстовых файлов. Например, для обработки файла журнала для печати определенных полей и строк.

    Awk не имеет пользовательского интерфейса. Это программа, которая обычно запускается из командной строки или сценария оболочки (unix) или «пакетного файла» (Windows).

    Вы скажете awk, что делать с текстом, который обрабатывается, указав команды awk в командной строке при запуске awk или создав файл сценария awk.

    В unix очень часто указывается все команды awk в командной строке, а не в файле awk-скрипта. В Windows это как раз наоборот … из-за того, как awk использует кавычки, скобки и другую пунктуацию в своих командах, awk-скрипты вообще (возможно, всегда) путают командную строку Windows. Поэтому в Windows почти всегда лучше использовать awk, поместив awk-команды в файл awk-скрипта.

    Вот пример использования awk в качестве решения вопроса.

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

     example.txt 

    Затем создайте файл со следующим кодом. Вы можете сохранить его как:
    Oddeven.awk (или что бы вы ни пожелали).

     { if (NR % 2 == 1) { print "<title>"$0"</title>" } else { print "<link>"$0"</link>" } } 

    В качестве альтернативы вы можете указать этот awk-скрипт в одной строке следующим образом:

     { if (NR % 2 == 1) {print "<title>" $0 "</title>"} else {print "<link>" $0 "</link>"} } 

    Параметры командной строки awk, которые мы будем использовать:

     -f "oddeven.awk" This is the name of the awk command script file. "example.txt" This is the name of the text file you are reading (and manipulating). "output.txt" This is the name of the file you are creating that will contain the modified text. 

    Затем командная строка, которую вы используете для вызова awk, выглядит следующим образом:

     awk -f "oddeven.awk" "example.txt" > "output.txt" 

    Если этот процесс изменения файла является «одноразовым», то использование Notepad ++ или другого текстового редактора, вероятно, проще, чем изучение языка сценариев.

    Но если вы будете делать этот же процесс снова и снова, или если вы хотите автоматизировать процесс, чтобы его можно было выполнить из сценария оболочки (unix) или пакетного файла (Windows), тогда awk – это путь.

    Этот ответ предназначен для тех, кто использует Notepad ++ версии 6 и более поздних версий. Если вы используете версию Notepad ++ до версии 6, то см. Мой другой ответ для рабочего решения.

    Предыдущие версии Notepad ++ имели большое ограничение на поиск / замену, которое вы не могли бы комбинировать «Extended» и «Regex» поиск / замены. Итак, в режиме «Расширенный» вы можете искать «Newlines», но вы не могли искать «подстановочные знаки» (*.?), А в режиме «Regex» вы могли искать с помощью «подстановочных знаков», T "Newlines". Это означало, что вы не можете выполнять многострочные поисковые запросы (многострочные да, но не если поиск содержит шаблоны Regex).

    Начиная с Notepad ++ версии 6 и более поздних версий, они начали использовать другой механизм Regex, который теперь позволяет искать / заменять Regex для поиска (и замены) «Newlines» и в то же время он может искать с помощью «подстановочных знаков» (*.?) , Поэтому в новых версиях Notepad ++ эта замена может быть выполнена с 1 или 2 шагами, в зависимости от (четного или нечетного) количества строк в файле.

    Использование метода «1-Step» здесь будет работать, если в файле всегда будет «четное» количество строк. Это связано с тем, что первый метод берет строки в парах и одновременно вносит изменения в четные и нечетные линии.

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

    Метод «2-Step» (если есть вероятность, что файл имеет «нечетное» количество строк »):

    Шаг 1. Добавьте « <title> » и « </title> » ко всем строкам:

     In "Regular Expression" Mode (F: is Find expression, R: is Replace expression): F:^(.*)$ R:<title>\1</title> 

    Шаг 2. Измените « <title> » и « </title> » на « <link> » и « </link> » во второй строке («четные» строки) каждой пары двух строк:

     Still in "Regular Expression" Mode: F:^(<title>.*</title>)\r\n<title>(.*)</title> R:\1\r\n<link>\2</link> 

    Если вы знаете, что файл всегда имеет «четное» число, если строки, вы можете сделать всю замену одним выстрелом:

     In "Regular Expression" Mode: F:^(.*)\r\n(.*)\r\n R:<title>\1</title>\r\n<link>\2</link>\r\n 

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

    EG Найти что: ^ (. +) $ Заменить на: title \ 1 / title

    Теперь это будет редактировать каждую строку, но это на полпути.

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

    См. Stackoverflow для добавления номеров ведущих строк ( Alt + Select для выбора режима столбца, Alt + C для редактора столбцов).

    Используйте его для достижения этого взгляда:

     1 линия
     2 линии
     3 линии
     4 линии
     5 строк
     6 линий
     7 линия
     8 линий
     9 линий
     10 строк
     11 строк
     12 строк
     13 линия
     14 линия
     15 строк
     16 строк
     17 линия
     18 строк
     19 линия
     20 строк
     21 линия
     22 линия
     23 линия
     24 линии
    

    Затем используйте regex для добавления текста ( Strg + H , активируйте режим поиска регулярных выражений).
    Замена ^[0-9]+[13579]+[ ] ([^\n] $) с <title>\1</title> будет заботиться о каждой неровной линии больше 10 .
    Замена ^[0-9]+[02468]+[ ] ([^\n] $) с помощью <link>\1</link> будет заботиться о каждой четной строке больше 10 .

    Либо измените первые 10 строк на руку, либо скопируйте их в новый файл и используйте на них ^[13579]+[ ] ([^\n] $) .

    Давайте будем гением компьютера.