У меня есть текстовый файл с несколькими строками, которые я хочу объединить (конкатенировать) в текстовом редакторе. Т.е. не прибегая к инструментам командной строки (особенно в Windows, где они могут быть вообще недоступны).
Я использую Geany и его функцию поиска и замены, но безуспешно: пробовал заменить $ ничем, используя (многострочное) регулярное выражение, и \n ничем, используя escape-последовательности.
Даже многострочное сопоставление, похоже, заменяет только содержимое, оставляя (пустые) строки такими, какие они есть!
Есть ли какой-нибудь простой способ сделать это?
решение1
Спасибо @Prasanna за подтверждение того, что это должно работать с заменой на основе "escape-последовательности". Я понял, что это может быть проблемой с завершением строки, и действительно, замена \n на пробел помещает пробел в начало каждой строки!
Так что, я думаю, это будет зависеть от платформы, но должно работать в соответствии с используемым окончанием строки:
В Windows найдите
\r\n
Замените его ничем (пустой строкой) или пробелом, в зависимости от ваших потребностей.
Регулярное выражение, похоже, вообще не справляется с задачей.
решение2
Я обнаружил, что секрет объединения строк в Geany с помощью поиска и замены регулярных выражений заключается в том, чтобы убедиться, Use multi-line matching
что включено. Я люблю Geany, поэтому вот последовательность шагов для удаления окончаний строк (здесь показана Windows, измените escape-символы окончания строки по мере необходимости для *nix):
- Проверьте окончания строк: в меню выберите
View >> Show line Endings
(например, в Windows это отобразит CRLF (\r\n)). - Выделите/выберите линии, которые вы хотите объединить.
- CTRL-H (Заменить)
- В
Search for:
поле введите\r\n
- В
Replace with:
поле ничего не вводите - Убедитесь,
Use regular expressions
что проверено - Убедитесь,
Use multi-line matching
что проверено - Щелкните
In Selection
, чтобы объединить все строки в выделенном фрагменте (разумеется, это можно сделать для всего документа или построчно, по вашему желанию).
Без проверки это не сработает Use multi-line matching
, вот в чем секрет.
решение3
На самом деле, в Geany есть команда «Объединить линии», но она как бы скрыта: нужно зайти в «Правка»/«Настройки»/«Сочетания клавиш» Действие: «Формат»/«Объединить линии», и там можно назначить сочетание клавиш; как говорится вОшибка соединения линий #510:
Да, «объединение линий» не находится в меню, это плохо, потому что это затрудняет его обнаружение, и назначение сочетания клавиш не должно приводить к появлению этого пункта в меню.
Но если назначить сочетание клавиш, то у меня оно работает с ccec1fe.