Змініть EOL на декількох файлах за один раз


100

Чи є в Notepad ++ спосіб (або навіть за допомогою іншого інструменту) змінити рядок, що закінчується на кількох файлах за один раз ?

тобто конвертувати суміш файлів Windows EOL ( CRLF) та UNIX EOL ( LF), щоб вони були всі Windows EOL ( CRLF)


1
У випадку, якщо блокнот ++ не є твердою вимогою, інформація тут може бути доречною: stackoverflow.com/questions/3110031/…
reuben

Відповіді:


102

Діалогове вікно « Замінити» може обробляти розширені символи, наприклад EOL. Просто змініть "Режим пошуку" на "Розширений", і ви можете працювати з EOL (\ r \ n в Windows або \ n в Unix), вкладками (\ t) тощо.

Ви також можете скористатися вкладкою Знайти у файлах діалогового вікна, щоб зробити заміну в декількох файлах.

Знімок екрана


14
Зверніть увагу , що це рішення не буде працювати , якщо все ваші файли не вже Unix-стиль. Оскільки заміна \nна \r\nтакож перетвориться \r\nна \r\r\n.
Кірк Уолл

-1, не змінюючи Правка> Перетворення EOL (див. Dos \ Windows у рядку стану екрана), натискання клавіші ENTER додасть неправильний EOL - а змішання EOL ще гірше, ніж дотримання будь-якого із стандартів
квітня

43
замініть \ n на \ r \ n. потім замініть \ r \ r \ n на \ r \ n. вуаля!
dev_row

2
Чому ваш приклад показує скріншот \tв Find what? Вкладки не мають нічого спільного із зміною закінчень рядків, правда?
trejder

1
чудово ... він відмінно працює в редакторі блокнотів ++ ... це економить величезні зусилля, які ми збираємося витратити вручну на зміни
aniruddha

91

У мене є Блокнот ++ 6.1.2.
У меню "Редагування" у вас є "EOL конверсія", яка робить саме те, що вам потрібно.


24
що працює на основі файлів, не можна застосувати до цілого набору файлів.
fduff

10
Ви прочитали назву питання? Ви бачили частину "змінити EOL на декілька файлів "?
Sk8erPeter

2
Ви відкриєте більше одного файлу, щоб зробити це в декількох файлах послідовно. Як він сказав, "за один раз" спочатку не було.
gparent

7
Насправді відповідь була дуже корисною для мене, оскільки мені потрібно було змінити EOL в одному файлі, і я не знав як.
DiegoDD

5
Корисна відповідь, оскільки це вперше з'являється в Google
Меттью Лок

69

Скористайтеся функцією "Знайти файли" (Ctrl + Shift + F). Змініть режим пошуку внизу зліва на "Регулярне вираження".

У полі "Знайти що" використовуйте цей шаблон:

(?<!\r)\n

Замінити:

\r\n

Виберіть каталог і вкажіть будь-які фільтри типів файлів. Поставте прапорець "У всіх підпапках", якщо ви хочете. Клацніть «Замінити у файлах».

Для цього потрібно замінити будь-які символи нового рядка (\ n), яким не передує повернення каретки (\ r) на \ r \ n. Таким чином, це не збігатиметься із закінченнями рядків, які вже є стилем Windows.

введіть тут опис зображення


1
Чи можете ви пояснити, що (?<!\r)\nозначає, особливо перша ?<!частина, дякую!
користувач1032613

2
(?<! )є негативним переглядом назад. Це означає, що збіг, якщо префікс відсутній. У цьому випадку він перевіряє \rі відповідатиме лише тому, що \nне має \rдо цього.
rtpHarry

Так. Я згоден з rtpHarry. Це ця частина моєї відповіді: "будь-які символи нового рядка (\ n), яким не передує повернення каретки (\ r)".
Шон

1
найскладніше рішення!
Філіп Міхальський

4
Технічно кажучи, це найточніша і найповніша відповідь на цій сторінці.
dotNET

8

Використовуйте заміну всіх на регулярний вираз

(\r?\n)|(\r\n?)

до

\r\n

Це буде відповідати кожному можливому шаблону закінчення рядка (одиночний \ r, \ n або \ r \ n) назад до \ r \ n (Windows).

Для роботи з кількома файлами виконайте такі дії:

  • Використовуйте "Замінити все в усьому відкритому документі" на вкладці "Замінити". Вам доведеться спочатку перетягнути всі файли в Блокнот ++. Добре, що ви будете контролювати, над яким файлом працювати, але можете бути повільним, якщо є кілька сотень чи тисяч файлів.
  • "Замінити у файлах" на вкладці "Знайти у файлах", на обраний вами фільтр файлів, наприклад, * .cpp * .cs в одному заданому каталозі.

Найкраща відповідь, оскільки це працює з усіма ароматами закінчень ліній. Дякую!
yoyo

Це найкраща і найпростіша відповідь!
користувач1447420

5

Єдине РОБОЧЕ рішення, яке я знайшов для декількох файлів / папок після googling протягом 1 години:

  • встановити пробний режим PyCham ,
  • відкрийте та виберіть папку / папки проекту та виконайте знімок екрана

введіть тут опис зображення


Також працює в IntelliJ IDEA Community Edition, яка безкоштовна і не потребує пробної версії. IntelliJ IDEA .
CodeMonkey

1

Знайшли це рішення завдяки цій дискусії :

Ви також можете встановити EOL за замовчуванням у блокноті ++ через "Налаштування" -> "Налаштування" -> "Новий документ / Каталог за замовчуванням", а потім виберіть "Unix / OSX" у полі Формат.

Примітка. Завжди можна використовувати параметр поза діапазону, використовуючи командний рядок:

unix2dos *.cmd
dos2unix *.sh

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.