Массовые манипуляции с текстом?

419
coderama

У меня есть текстовый файл из пары сотен тысяч слов. Например:

word1 word2 etc 

Я хочу знать, какую программу я могу легко использовать:

  1. Добавьте «FRONT» в начале текста и
  2. Добавьте «BACK» в конец текста

Так что я бы закончил с:

FRONTword1BACK FRONTword2BACK FRONTetcBACK 

Я могу легко сделать это, кодируя его в PHP, но я хочу знать, есть ли более быстрый путь с правильным инструментом? Возможно, это можно сделать в чем-то вроде notepad ++, или scite, или в худшем случае, командной строки linux.

Примечание: я бы предпочел визуальный редактор на базе WINDOWS.

1
Ммм? Да - Notepad ++ - использовать замену регулярных выражений ppumkin 12 лет назад 3
Хорошо, вы можете объяснить, как? И я надеялся, что смогу избежать регулярных выражений, потому что они - боль. coderama 12 лет назад 0
НЕТ! Регулярные выражения - способ сделать это. В противном случае сделайте это на PHP, как вы сказали. ppumkin 12 лет назад 1
http://sourceforge.net/apps/mediawiki/notepad-plus/index.php?title=Regular_Expressions Примеры могут помочь! user905686 12 лет назад 1

2 ответа на вопрос

3
snowdude

В NotePad ++ регулярное выражение заменяют:

Найти что: ^ (. *) $

Заменить на: FRONT \ 1BACK

Что происходит с точки зрения регулярных выражений?

^ - соответствует началу строки
$ - соответствует концу строки
. * - соответствует всему, что находится между ними (в скобках пометить его как группу)

Замена - это просто то, что вы хотите до и после исправления, а значение первой группы регулярных выражений (т.е. все в строке) зажато в середине.

2
zergu

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

1) Добавьте что-нибудь перед первым символом в каждой строке:

  • Перейти к первой строке, первому столбцу.
  • Ctrl + v Ctrl + q, чтобы войти в режим визуального блока.
  • Ctrl + g, чтобы перейти к последней строке.
  • Shift + i, чтобы войти в режим визуальной вставки.
  • Введите текст и нажмите Esc. Текст должен появляться во всех строках.

2) Добавить что-то в конце. Если все слова имеют одинаковую длину, вы можете сделать, как описано выше. Если не использовать макросы.

  • Перейти к первой строке
  • Нажмите «q» дважды. Первый начинает запись, второй выбирает буфер для записи (может быть любой буквой).
  • Shift + a, чтобы начать вставку текста в конце строки.
  • Введите желаемый текст.
  • Esc, чтобы остановить вставку.
  • Стрелка вниз или «j», чтобы перейти к следующей строке.
  • 'q' снова, чтобы остановить запись.
  • Теперь вы можете воспроизвести записанное действие, набрав '@@' или '@q'. «@@» воспроизводит последнюю запись, «@q» - запись в буфере «q» (то же самое в этом примере).
  • Введите «1000 @@», чтобы воспроизвести макрос 1000 раз.
Спасибо, но CTRL-V с Windows VIM делает "вставку". Я буду продолжать пытаться ... coderama 12 лет назад 0
Попробуйте Ctrl + Q, не должно конфликтовать с вставкой Windows. zergu 12 лет назад 0