Bir dosyadaki “\ r \ n” yerine “\ n” yerine geçmenin en hızlı ve En Temel yolu mu?


11

Sanırım trdaha temel bir yöntem ve bu nedenle muhtemelen bir dosyadaki şeyleri değiştirmek için daha hızlı bir yol.

Ancak tr yalnızca eşit sayıda karakterin yerini alabilir. anlamı ...

2 karakter yalnızca 2 karakterle değiştirilebilir, bu da değiştirilmesi anlamına gelir

\r\nile \nüzerinden söz konusu değiltr

sonraki en iyi seçenek sednedir?

sed tr yetenekleri eksikliği verilen bir dosya \r\nile değiştirmek için en çekirdek ve en hızlı yolu \nnedir?

mümkünse bir örnek istiyorum.


"En Çekirdek" tam olarak ne anlama geliyor?
Keith Thompson

Yanıtlar:


23

İle sedşunları yapabilirsiniz:

sed 's/\r$//'

Aynı şekilde, trsadece kaldırmanız gerekir \r:

tr -d '\r'

Her ne kadar bu tüm örnekleri kaldıracak \r, ardından gerekli değil \n.


2
Bu ikisi aynı değil. Birincisi '\ r \ n' yerine '\ n' (etkin) yerine geçer, ancak ikincisi göründükleri her yerde '\ r' karakterini kaldıracaktır. Satır sonu dışında bir metin dosyasında satır başı dönüşünün görülmesi nadirdir, ancak olabilir.
ams

4

Veya kullan dos2unix

Örneğin:

$ echo -ne "1\r\n2" |  od -A n -t x1
 31 0d 0a 32
$ echo -ne "1\r\n2" | dos2unix | od -A n -t x1
 31 0a 32

biz yerine görebilirsiniz \r\nile\n


Bu OP listesindeki bir program değil, bence bu işi yapmanın en temiz yolu. Ben şahsen böyle bir dönüşüme ihtiyacım olduğunda kullanıyorum.
17:20
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.