GNU/Linux >> Tutoriels Linux >  >> Linux

DOS vers Unix :commandes et exemples

Présentation

Les fichiers créés sous DOS/Windows utilisent le retour chariot (\r ) et saut de ligne (\n ) pour les fins de ligne. Cependant, les fichiers sous Unix/Linux utilisent uniquement le saut de ligne.

Par conséquent, lors du transfert d'un fichier d'un système à un autre, assurez-vous de convertir les fichiers.

Dans ce didacticiel, vous apprendrez à transférer des fichiers de DOS vers Unix et vice-versa.

Convertir des fichiers sous Linux

Il existe plusieurs façons de transférer des fichiers pour utiliser les fins de ligne appropriées. Convertissez les fichiers en utilisant :

  • dos2unix commande
  • unix2dos commande
  • sed commande (voir le didacticiel de la commande Linux sed)
  • tr commande
  • Vi/Vim éditeur de texte (voir aide-mémoire des commandes Vim)
  • perl commande en une ligne

Option 1 :Conversion de DOS en UNIX avec la commande dos2unix

Le moyen le plus simple de convertir les sauts de ligne dans un fichier texte est d'utiliser le dos2unix outil.

Installez l'outil en exécutant la commande :

sudo apt install dos2unix

ou :

sudo dnf install dos2unix

Si vous téléchargez un fichier créé sous DOS/Windows sur votre système Linux, vous pouvez le convertir en utilisant le dos2unix commande :

dos2unix [file_name]

La commande convertit le fichier sans l'enregistrer dans le format d'origine. Si vous souhaitez enregistrer le fichier d'origine, ajoutez le -b attribut avant le nom du fichier. Cela crée un fichier de sauvegarde sous le même nom et le .bak extension.

dos2unix -b [file_name]

Option 2 :Conversion d'UNIX en DOS à l'aide de la commande unix2dos

Pour convertir un fichier créé sur un système Linux au format DOS, exécutez la commande :

unix2dos [file_name]

Vous pouvez également ajouter le -b attribut pour enregistrer le fichier d'origine en tant que sauvegarde :

unix2dos -b [file_name]

Option 3 :Utilisation de la commande sed

Vous pouvez également utiliser le sed (éditeur de flux) pour supprimer la ligne de retour chariot terminaisons. La syntaxe de commande pour ce faire est :

sed 's/^M$//' [original_file_name]>[converted_file_name]

Au lieu de simplement taper ^M , appuyez sur Ctrl+V suivi de Ctrl+M pour entrer le symbole de retour chariot. Lors de l'utilisation de sed commande, spécifiez le nom du fichier DOS [original_file_name] et comment vous voulez nommer le fichier converti [converted_file_name] .

Pour changer le format de fichier d'Unix à DOS , utilisez la commande :

sed 's/$/^M/' [original_file_name]>[converted_file_name]

Option 4 :Utilisation de la commande tr

Une autre façon de convertir un fichier au format Unix consiste à supprimer \r les lignes se terminent par le tr commande. Le tr command est un utilitaire de ligne de commande pour traduire ou supprimer des caractères.

Utilisez la commande au format suivant :

tr -d '\r' < [original_file_name]>[converted_file_name]

Option 5 :Utiliser l'éditeur de texte Vim

Vous pouvez également supprimer les fins de ligne de retour chariot des fichiers au format DOS à l'aide de l'éditeur de texte Vi/Vim.
Ouvrez le fichier dans Vi/Vim :

vi [file_name]

Appuyez ensuite sur : et tapez la commande Vi/Vim suivante (en vous assurant de taper Ctrl+V puis Ctrl+m au lieu de ^m ):

:%s/^ m //g

Option 6 :Utiliser un Perl One Liner

Enfin, vous pouvez utiliser une commande Perl à une ligne pour supprimer tous les \r fins de ligne. Les en ligne Pearl sont des scripts qui tiennent dans une seule ligne de code.

Pour remplacer tous les retours chariot et sauts de ligne par des sauts de ligne uniquement :

1. Ouvrez le fichier dans l'éditeur de texte Vi/Vim.

2. Appuyez sur : pour demander la ligne de commande.

3. Saisissez la commande suivante et appuyez sur Entrée :

perl -pi -e 's/\r\n/\n/g' [file_name]

Vous devriez voir immédiatement les changements dans le fichier.

Exemple :Conversion d'un exemple de fichier du format DOS au format Unix

Supposons que vous ayez téléchargé un fichier nommé sample-dos-file .

En ouvrant le fichier à l'aide de l'éditeur de texte Vim/Vi, vous verriez qu'après chaque fin de ligne, il y a ^M (un retour chariot).

Une autre façon de voir que le fichier utilise à la fois le retour chariot et le saut de ligne pour les fins de ligne consiste à afficher le fichier en valeurs octales.

Pour cela, lancez la commande :

od -bc sample-dos-file.txt

La sortie affiche le contenu du fichier avec ses valeurs octales, comme dans l'image ci-dessous. Vous pouvez voir que chaque fin de ligne est marquée avec les valeurs octales 015 (\r) et 012 (\n) .

Maintenant, pour convertir le fichier et supprimer toutes les fins de retour chariot, vous devez exécuter la commande :

dos2unix sample-dos-file

Ouvrez le même fichier dans Vim/Vi. Il n'inclut aucun ^M symboles signalant la fin de ligne.

Pour confirmer que le fichier est au format Unix, vous pouvez également ouvrir l'affichage du contenu en valeurs octales. La sortie doit afficher uniquement le 012 valeurs pour \n .


Linux
  1. Commandes Linux - Présentation et exemples

  2. Commandes Linux :jobs, bg et fg

  3. La commande Linux AWK - Exemples de syntaxe d'utilisation Linux et Unix

  4. Commande mv sous Linux :7 exemples essentiels

  5. 10 exemples de commandes Cat pour gérer des fichiers sous Linux / UNIX

Commande Linux WC avec exemples

Les commandes alias et unalias expliquées avec des exemples

50 commandes de coupe Linux simples et utiles sous Unix avec des exemples

Commande AWK sous Linux/Unix

Commande Unix LS :15 exemples pratiques

Exemples de manipulation de fichiers à l'aide des commandes Tac, Rev, Paste et Join Unix