DOS/Windows’ta oluşturulan dosyalar satır başı kullanır (\R) ve satır besleme (\N) satır sonları için. Ancak, Unix/Linux’taki dosyalar yalnızca satır besleme kullanır.
Bu nedenle, bir sistemden diğerine dosya aktarırken, dosyaları dönüştürdüğünüzden emin olun.
Bu öğreticide, dosyaları DOS’tan Unix’e ve tersi yönde nasıl aktaracağınızı öğreneceksiniz.
Dosyaları Linux’ta Dönüştürme
Uygun satır sonlarını kullanmak için dosyaları aktarmanın birkaç yolu vardır. Aşağıdakileri kullanarak dosyaları dönüştürün:
Seçenek 1: dos2unix Komutu ile DOS’u UNIX’e dönüştürme
Bir metin dosyasındaki satır sonlarını dönüştürmenin en basit yolu, dos2unix alet.
Komutu çalıştırarak aracı kurun:
sudo apt install dos2unix
veya:
sudo dnf install dos2unix
DOS/Windows’ta oluşturulmuş bir dosyayı Linux sisteminize indirirseniz, onu kullanarak dönüştürebilirsiniz. dos2unix
emretmek:
dos2unix [file_name]
Komut, dosyayı orijinal biçimde kaydetmeden dönüştürür. Orijinal dosyayı kaydetmek istiyorsanız, -b
dosya adından önce öznitelik. Bunu yapmak, aynı ad altında bir yedekleme dosyası oluşturur ve .bak eklenti.
dos2unix -b [file_name]
2. Seçenek: unix2dos Komutunu kullanarak UNIX’i DOS’a dönüştürme
Linux sisteminde oluşturulan bir dosyayı DOS biçimine dönüştürmek için şu komutu çalıştırın:
unix2dos [file_name]
Alternatif olarak, -b
orijinal dosyayı yedek olarak kaydetme özelliği:
unix2dos -b [file_name]
Seçenek 3: sed Komutunu Kullanma
Şunu da kullanabilirsiniz: sed
(akış düzenleyici) komutu satır başı satırını kaldır sonlar. Bunu yapmak için komut sözdizimi şöyledir:
sed 's/^M$//' [original_file_name]>[converted_file_name]
Sadece yazmak yerine ^M
basmak Ctrl+V
bunu takiben Ctrl+M
satırbaşı sembolüne girmek için. kullanırken sed
komut, DOS dosyasının adını belirtin [original_file_name]
ve dönüştürülen dosyayı nasıl adlandırmak istediğinizi [converted_file_name]
.
Dosya biçimini değiştirmek için Unix’ten DOS’aşu komutu kullanın:
sed 's/$/^M/' [original_file_name]>[converted_file_name]
Seçenek 4: tr Komutunu Kullanma
Bir dosyayı Unix formatına dönüştürmenin başka bir yolu da \R ile biten satırlar tr
emretmek. bu tr
komutu, karakterleri çevirmek veya silmek için kullanılan bir komut satırı yardımcı programıdır.
Komutu aşağıdaki biçimde kullanın:
tr -d '\r' < [original_file_name]>[converted_file_name]
Seçenek 5: Vim Metin Düzenleyicisini Kullanma
Vi/Vim metin düzenleyicisini kullanarak DOS biçimindeki dosyalardan satırbaşı satır sonlarını da kaldırabilirsiniz.
Dosyayı Vi/Vim’de açın:
vi [file_name]
sonra basın :
ve aşağıdaki Vi/Vim komutunu yazın (yazdığınızdan emin olun) Ctrl+V
Daha sonra Ctrl+m
yerine ^m
):
:%s/^ m //g
Seçenek 6: Perl One Liner Kullanmak
Son olarak, tüm \ öğelerini silmek için tek satırlık bir Perl komutu kullanabilirsiniz.R satır sonları. Pearl on-liner’lar, tek bir kod satırına sığan betiklerdir.
Tüm satırbaşı ve satır besleme sonlarını yalnızca satır beslemeleriyle değiştirmek için:
1. Dosyayı Vi/Vim metin düzenleyicisinde açın.
2. Basın :
komut satırını istemek için.
3. Aşağıdaki komutu yazın ve Enter tuşuna basın:
perl -pi -e 's/\r\n/\n/g' [file_name]
Dosyadaki değişiklikleri hemen görmelisiniz.
Örnek: Bir Örnek Dosyayı DOS’tan Unix Biçimine Dönüştürme
Diyelim ki adlı bir dosya indirdiniz. örnek-dos-dosyası.
Dosyayı Vim/Vi metin düzenleyicisini kullanarak açtığınızda, biten her satırdan sonra ^M
(bir taşıma dönüşü).
Satır sonları için hem satır başı hem de satır besleme kullanan dosyayı görmenin başka bir yolu, dosyayı sekizlik değerlerde görüntülemektir.
Bunu yapmak için şu komutu çalıştırın:
od -bc sample-dos-file.txt
Çıktı, dosyanın içeriğini aşağıdaki görüntüdeki gibi sekizlik değerleri ile görüntüler. Her satır sonunun sekizlik değerlerle işaretlendiğini görebilirsiniz. 015 (\r) Ve 012 (\n).
Şimdi, dosyayı dönüştürmek ve tüm satır başı sonlarını kaldırmak için şu komutu çalıştırmanız gerekir:
dos2unix sample-dos-file
Aynı dosyayı Vim/Vi’de açın. Hiçbirini içermez ^M
satır sonunu işaret eden semboller.
Dosyanın Unix biçiminde olduğunu doğrulamak için içeriği sekizlik değerlerde görüntülemeyi de açabilirsiniz. Çıktı yalnızca şunu göstermelidir: 012 \ için değerlerN.
Çözüm
Bu makale, bir DOS dosyasını bir Unix biçimine dönüştürmenin ve bunun tersini yapmanın altı yolunu gösterdi.
En basit ve önerilen yol, dos2unix
emretmek. kullanamıyorsanız dos2unix
aralarından seçim yapabileceğiniz beş seçeneğiniz daha var.