Konversi file secara rekursif dari akhir baris dos ke akhir baris unix


11

Saya mencari perintah yang bisa saya gunakan untuk berjalan di seluruh direktori dan subdirektori yang akan mengubah semua akhir baris dari DOS ke UNIX.

Seharusnya dapat mendeteksi apakah file adalah teks atau biner.

Saya menginstal dos2unixmenggunakan macports tetapi tampaknya tidak melewatkan opsi rekursif.


Tentukan bagaimana suatu file adalah teks atau biner?
user151019

Teks: Tidak ada ASCII di bawah 32, kecuali untuk TAB, CR, LF.
Max Ried

Jawaban:


22

Coba find . -name "*" -type f -exec dos2unix {} \;.


Jika dos2unixtidak tersedia di sistem Anda, Anda dapat menggunakan skrip berikut (save as dos2unixdan atur sebagai executable):

#!/bin/sh

perl -pi -e 's/\r\n/\n/;' $*

Jangan jalankan perintah ini di root dari repositori Git atau Anda akan merusak repositori Anda!
Nick

Juga, saya lebih beruntung menggunakan perl -pi -e 's/\r\n|\n|\r/\n/;' $*( sumber )
Nick

1

Berikut ini adalah satu kode shell baris find . -name "*" -type f -exec perl -pi -e 's/\r\n/\n/;' {} \;


Satu baris jawaban tidak disarankan. Coba tambahkan lebih detail, atau komentari.
Max Ried

Bekerja seperti yang diiklankan! Apa lagi yang ingin ditambahkan? ;-)
Taiko

2
Hm ... yah itu memang mengacaukan beberapa file png. Tangani dengan hati
Taiko
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.