Ubah EOL pada banyak file sekaligus

100

Apakah ada cara di Notepad ++ (atau bahkan dengan alat lain) untuk mengubah baris yang diakhiri secara otomatis pada banyak file sekaligus ?

yaitu mengonversi campuran file windows EOL ( CRLF) dan UNIX EOL ( LF) menjadi semua Windows EOL ( CRLF)

fduff
sumber
1
Jika notepad ++ bukan persyaratan yang pasti, informasi di sini mungkin relevan: stackoverflow.com/questions/3110031/…
reuben

Jawaban:

102

The Ganti dialog dapat menangani karakter diperpanjang seperti EOL. Ubah saja "Mode Pencarian" menjadi "Diperluas", dan Anda dapat bekerja dengan EOL (\ r \ n di Windows atau \ n di Unix), tab (\ t), dll.

Anda juga dapat menggunakan tab Temukan di File dari dialog untuk mengganti beberapa file.

Screenshot

McGarnagle
sumber
14
Perhatikan bahwa solusi ini tidak akan bekerja jika semua file Anda tidak sudah unix-style. Karena mengganti \ndengan \r\njuga akan dikonversi \r\nmenjadi \r\r\n.
Kirk Woll
-1 tanpa mengubah Edit> konversi EOL (lihat Dos \ Windows di bilah status tangkapan layar Anda), menekan ENTER akan memasukkan EOL yang salah - dan memiliki EOL campuran bahkan lebih buruk daripada mempertahankan standar mana pun
Aprillion
43
ganti \ n dengan \ r \ n. kemudian ganti \ r \ r \ n dengan \ r \ n. voila!
dev_row
2
Mengapa screenshot Anda misalnya pertunjukan \tdi Find what? Tab tidak ada hubungannya dengan mengubah akhir baris, bukan?
trejder
1
hebat ... ini bekerja dengan sempurna di editor notepad ++ ... ini menghemat banyak usaha, yang akan kita habiskan dengan perubahan manual
aniruddha
91

Saya memiliki Notepad ++ 6.1.2.
Dalam menu "Edit" Anda memiliki "konversi EOL" yang melakukan apa yang Anda butuhkan.

Marco
sumber
24
yang bekerja berdasarkan file, tidak dapat diterapkan ke seluruh kumpulan file.
fduff
10
Sudahkah Anda membaca judul pertanyaan? Apakah Anda melihat bagian "ubah EOL pada banyak file "?
Sk8erPeter
2
Anda akan membuka lebih dari satu file untuk melakukannya ke lebih dari satu file, secara berurutan. Seperti yang dia katakan, "dalam sekali jalan" awalnya tidak ada.
gparent
7
Sebenarnya jawabannya sangat berguna bagi saya, karena saya perlu mengubah EOL dalam satu file, dan saya tidak tahu caranya.
DiegoDD
5
Jawaban yang berguna karena ini muncul pertama kali di Google
Matthew Lock
69

Gunakan fitur 'Temukan Di File' (Ctrl + Shift + F). Ubah mode pencarian di kiri bawah menjadi 'Regular Expression'.

Di kotak 'Temukan apa', gunakan pola ini:

(?<!\r)\n

Ubah dengan:

\r\n

Pilih direktori Anda dan tentukan filter jenis file apa pun. Centang 'Di semua sub-folder' jika Anda mau. Klik 'Ganti di File'.

Apa yang dilakukannya adalah mengganti karakter baris baru (\ n) yang saat ini tidak didahului oleh carriage return (\ r) dengan \ r \ n. Jadi itu tidak akan cocok dengan akhiran baris yang sudah bergaya Windows.

masukkan deskripsi gambar di sini

Sean
sumber
1
Bisa dijelaskan apa (?<!\r)\nartinya, terutama bagian pertama ?<!, terima kasih!
pengguna1032613
2
itu (?<! )adalah pandangan negatif. Artinya cocok jika prefiks tidak ada. Dalam hal ini itu memeriksa \rdan hanya akan cocok jika \ntidak memiliki \rsebelumnya.
rtpHarry
Ya. Saya setuju dengan rtpHarry. Ini adalah bagian dari jawaban saya ini: "karakter baris baru (\ n) yang saat ini tidak didahului oleh carriage return (\ r)".
Sean
1
solusi paling canggih!
Philipp Michalski
4
Secara teknis, ini adalah jawaban paling tepat dan lengkap di halaman ini.
dotNET
8

Gunakan ganti semua dengan ekspresi reguler

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

untuk

\r\n

Ini akan cocok dengan setiap pola akhir baris yang mungkin (satu \ r, \ n atau \ r \ n) kembali ke \ r \ n (Windows).

Untuk mengoperasikan banyak file, baik:

  • Gunakan "Ganti Semua di semua dokumen yang dibuka" di tab "Ganti". Anda harus menarik dan melepas semua file ke Notepad ++ terlebih dahulu. Ada baiknya Anda memiliki kendali atas file mana yang akan dioperasikan tetapi bisa lambat jika ada beberapa ratus atau ribuan file.
  • "Replace in files" pada tab "Find in files", dengan filter file pilihan Anda, misalnya, * .cpp * .cs di bawah satu direktori yang ditentukan.
Wappenull
sumber
Jawaban terbaik, karena berfungsi dengan semua rasa akhir baris. Terima kasih!
yoyo
Ini adalah jawaban terbaik dan termudah!
pengguna1447420
5

Satu-satunya solusi KERJA yang saya temukan untuk banyak file / folder, setelah googling selama 1 jam adalah ini:

  • instal mode uji coba PyCham ,
  • buka dan pilih Folder / Folder Proyek Anda dan ikuti tangkapan layar

masukkan deskripsi gambar di sini

Cristian Muscalu
sumber
Juga berfungsi di IntelliJ IDEA Community Edition, yang gratis dan tidak memerlukan uji coba. IDE IntelliJ .
CodeMonkey
1

Temukan solusi ini melalui diskusi ini :

Anda juga dapat mengatur EOL default di notepad ++ melalui "Pengaturan" -> "Preferensi" -> "Dokumen Baru / Direktori Default" lalu pilih "Unix / OSX" di bawah kotak Format.

Catatan: Seseorang selalu dapat menggunakan opsi out-of-band menggunakan baris perintah:

unix2dos *.cmd
dos2unix *.sh
R2AD
sumber