\ R \ n dosyasını \ n biçimine dönüştürmek için bir Bash komutu var mı?


19

\ R \ n dosyasını \ n biçimine dönüştürmek için bir Bash komutu var mı?

Komut dosyalarımı Windows'tan Linux'a yüklediğimde, işlerin çalışması için böyle bir yardımcı programa ihtiyacım var.


7
dos2unixgenellikle kullanılabilir, aksi takdirdesed -e 's/\r$//'
falstro

1
Hayır, bunun için Bash komutu yok, ancak dos2unixistediğinizi yapmak için bir Unix / Linux programı var.
sonraki duyuruya kadar duraklatıldı.

1
Neden dosyaları kaydederken satırsonu stilini seçmenizi sağlayan aklı başında bir metin editörü kullanmıyorsunuz?
Haziran'da 05:10

Yanıtlar:


28

Var:

dos2unix

Bu tarihsel olarak doğru cevaptır, ancak dos2unix bugünlerde her zaman mevcut değildir.
Jared

5

Translate ( tr ) tüm Unix'lerde kullanılabilir:

tr -d '\r'  # From \r\n line end (DOS/Windows), the \r will be removed so \n line end (Unix) remains.

1
Başkalarının da çıkarılmasının bir yan etkisi vardır \r. Yine de oldukça nadirdirler.
ivan_pozdeev

5

Sed ile ve bul ile sonu .txt, .php, .js, .css:

 sed -rie 's/\r\n/\n/' \
 $(find . -type f -iregex ".*\.\(txt\|php\|js\|css\)")

5

convSatır sonlarını dönüştürebilen bir Unix yardımcı programı var . Genellikle u2dveya d2uveya unix2dosveya düğmelerine yumuşak bağlantılarla çağrılır dos2unix.

Ayrıca fromdosve adında yardımcı programlar vardır todos.


2

Man 1 ed kullanma (dosyaları daha önce yedeklemeden yerinde düzenler - aksine: sed .. -i ".bak" ...):

ed -s file <<< $'H\ng/\r*$/s///\nwq'

Ed bile bilmiyorum, ama iş yapar (eski ama altın)
dwana

Kullandığım paylaşılan barındırmada diğer yanıtlardan komutlar olmadığında bu komut benim için çalıştı. Teşekkürler :)
FKasa

2

POSIX ile bunu yapmak zor:

  • POSIX Sed desteklemiyor \rveya \15. Olsa bile, yerinde seçeneği -iPOSIX değildir

  • POSIX Awk destek yapar \rve \15bununla birlikte, -i inplaceseçenek POSIX değil

  • d2u ve dos2unix değildir POSIX yardımcı programları , ancak eski olduğu

  • POSIX ex desteklemez \r, \15, \nveya\12

Satır başlarını kaldırmak için:

awk 'BEGIN{RS="\1";ORS="";getline;gsub("\r","");print>ARGV[1]}' file

Satır başı eklemek için:

awk 'BEGIN{RS="\1";ORS="";getline;gsub("\n","\r&");print>ARGV[1]}' file


0

$ recode dos .. FILE
$ flip -u FILE

(Her biri Ubuntu dışı sistemler için de mevcuttur, ancak bu bağlantılar kullanışlıdır.)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.