Dos2unix, perl, tr ve sed bulunmayan dosyalardan Ctrl-M nasıl kaldırılır?


9

Eğer çok eski bir unix sunucu üzerinde çalışan nereye varsayalım dos2unix, perl, trve sedmevcut değildir. Nasıl dosyaları dönüştürebilirsiniz dos için unix formatında?


sed izin verilir?
elmarco

@elmarco: no :(
Hemant

9
Unix sunucusunun kaç yaşında olması gerekir trve sed? sedeski ........ iirc,
xenoterracide

1
Böyle bir sistemde kullanılabilir mi exveya edmevcut mu? Ben diyoruz would'nt unix hiçbir varsa trveya sed.
MattBianco

3
Hayır sed? Gerçekten mi!? İlgisiz, sistem nedir? Gilles ve MattBianco'nun belirttiği gibi, muhtemelen eden azından hala olurdu .
Mikel

Yanıtlar:


12

Sanırım hatların sonunda caret-M'yi kaldırmayı kastediyorsunuz. Bunu yapmak için vi'daki arama ve değiştirme işlevlerini kullanabilirsiniz.

VI normalde yapmak: (burada "^" CTRL temsil eder):

:%s/^V^M//g

Ekranda gösterilen:

:%s/^M//g

teşekkürler çalıştı :). Bence bu çok taşınabilir bir çözüm.
Hemant

4
Ayrıca sed dosyasını aynı şeyi yapmak için de kullanabilirsiniz. M // g 'dosyaadı Genel olarak, vim içinde arayabilir / değiştirebilirseniz, komut sed'de hemen hemen aynıdır.
gabe.

2
@gabe: sed çözümü aslında daha taşınabilir +1 :)
wzzrd

@wzzrd sedve viher ikisi de POSIX tarafından belirtilir ve bu vikomut herhangi bir Vim uzantısı kullanmaz.
Wildcard

@jjclarkson ^Vve '^ M' ne anlama geliyor?
cokedude

6

Olmayan trveya sedgerçekten eski olan veya bazı temel komutları eksik olan bir sunucu . Umarım edoradadır; o varolan Unix ilk baskısının .

ed /path/to/file
1,$s/^V^M$//
w
q

burada + sonra + ^V^Myazmak (değişmez satır beslemesi girmek için) anlamına gelir . Tüm satırların CR LF ile sona erdiğini biliyorsanız, bunun yerine kullanabilirsiniz (her satırdaki son karakteri rastgele ayırın).CtrlVCtrlM1,$s/.$//

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.