Змініть 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.