Необходимо заменить символ в диапазоне столбца - PullRequest
0 голосов
/ 25 октября 2019

Я использую блокнот ++. У меня есть очень большой файл (1 ГБ), который использует канал в качестве разделителя. К сожалению, в файле есть столбец с данными, который также использует канал. Есть ли способ указать диапазон столбцов (например, 300-350) на миллион строк, который находит канал, и заменить его на тире.

Ответы [ 2 ]

0 голосов
/ 26 октября 2019
  • Ctrl + H
  • Найти что: ^.{300}[^|]{0,50}+\K\| (Отрегулируйте значения по вашему усмотрению)
  • Заменить на:-
  • CHECK Обтекание
  • CHECK Регулярное выражение
  • UNCHECK . matches newline*
  • Заменить все

Объяснение:

^               # beginning of line
  .{300}        # 300 any character but newline
  [^|]{0,50}    # 0 up to 50 any character that is not a pipe
  \K            # forget all we have seen until this position
  \|            # a pipe

Я провел тест с меньшим файлом, он заменяет трубу дефисом между 13-м и 22-м столбцом, чтобы показать метод, измените значения, как вам нравится:

Экранзахват (до):

enter image description here

Снимок экрана (после):

enter image description here

0 голосов
/ 26 октября 2019

Для очень больших файлов используйте инструменты командной строки для анализа файла. Для 1 ГБ визуальный редактор для редактирования является контрпродуктивным.

Самыми популярными инструментами для выполнения вашей задачи являются awk.

Вы можете использовать awk в оболочке Bash после установки GIT .

Моя любимая альтернатива оболочки Windows Bash - Mobaxterm free.

Или использование встроенной оболочки Bash в Windows 10.

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

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

head largeFile.txt

Существует также решение PowerShell для извлечения нескольких верхних строк из большого файла, в этом ответе .

...