Notepad++, замените " x " значением из списка

в основном то, что говорит название, позвольте мне сделать пример.

this=X
that=XXX
those=XX

Я хочу случайным образом заменить X на значение из списка, например (1, 2 или 3), чтобы оно стало:

this=2
that=312
those=32

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

10
задан DavidPostill
20.12.2022 12:58 Количество просмотров материала 2917
Распечатать страницу

2 ответа

Я хочу случайным образом заменить X на значение из списка

это невозможно с помощью встроенной функциональности Notepad++.

вы можете написать сценарий, чтобы сделать это.

есть плагин скриптов python для Notepad++:

Python-скрипт для Notepad++

  • полный программный доступ к функциям и меню Notepad++
  • полный программный доступ ко всем Особенности Искра
  • вызов другой плагин меню
  • назначить пункты меню, ярлыки и иконки на панели инструментов для скриптов
  • процесс Notepad++ и C # события, прямо из скрипта Python
  • встроенная консоль Python
  • полная поддержка регулярных выражений для поиска и замены - скрипт Python регулярное выражение заменяет
  • запуск внешней программы и трубы выход прямо на Блокнот++ документ, или отфильтруйте его или просто в окно консоли
  • полная документация по всем объектам и методам

Source Python-скрипт для Notepad++

0
отвечен DavidPostill 2022-12-21 20:46

как писал DavidPostill, это невозможно с помощью Notepad++.

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

  • во-первых, заменить XXX, потому что XXX не входит X или XX (обратная, X является частью XXX, а если заменить X во-первых, e. g. с foo, тогда вы получите foo,foofoo, foofoofoo.)
  • затем заменить XX
  • в конце концов, заменить X

    test1=X test2=XX test3=XXX

ctrl-a, ctrl-h

поиск: XXX заменить: фу

test1=X
test2=XX
test3=foo

ctrl-h

поиск: XX заменить: bar

test1=X
test2=bar
test3=foo

и так далее.

встречный пример:

test1=X
test2=XX
test3=XXX

ctrl-a, ctrl-h

найти: X заменять: foo

test1=foo
test2=foofoo
test3=foofoofoo

варианты

Cygwin

первая альтернатива, которая приходит мне на ум-это Cygwin потому что он установлен на моем компьютере в любом случае.

запустите Cygwin и используйте perl,sed или awk для замены.

Powershell

как заявил здесь, вы могли бы использовать некоторые PowerShell сценарий по строкам

(Get-Content test.txt) | ForEach-Object { $_ -replace "foo", "bar" } | Set-Content test2.txt

пакета

как заявил здесь, вы также можете использовать пакетные скрипты, e. g.

@echo off &setlocal
setlocal enabledelayedexpansion

set "search=%1"
set "replace=%2"
set "textfile=Input.txt"
set "newfile=Output.txt"
(for /f "delims=" %%i in (%textfile%) do (
    set "line=%%i"
    set "line=!line:%search%=%replace%!"
    echo(!line!
))>"%newfile%"
del %textfile%
rename %newfile%  %textfile%
endlocal
0
отвечен stueja 2022-12-21 23:03

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх