EOL: Hoe converteer je een DOS-type tekstbestand naar UNIX en vice versa

Selecteer DOS, Unix-teksteditor-menu

Met deze simpele zelfstudie, lossen we een klein ongeluk op dat u zeker is overkomen. Vaak is het ons overkomen dat bij het openen van een .txt-bestand in Linux of Windows, de tekst wordt gewijzigd ten opzichte van hoe we deze in het begin hadden bewerkt. Wat er gebeurt, is dat de lijnen zich bij ons hebben aangesloten en de spaties niet verschijnen. Dit komt doordat het tekstbestandsformaat van het UNIX-type verschilt van het DOS-type in termen van het karakter van end-of-line (EOL) die ze in dienst hebben.

Voor UNIX-systemen is het teken een "line feed / newline" of LF en dat komt overeen met \ n, als je het programmeert, zal het voor je klinken. Terwijl in Windows het systeem dat in het oude DOS werd gebruikt, wordt geërfd, dat wil zeggen een "regelterugloop" gevolgd door een "line feed / nieuwe regel" (\ r \ n). Als we het bestand bijvoorbeeld in Linux hebben bewerkt en we openen het met Windows (en het formaat waarin we het hebben opgeslagen is niet geschikt), dan zal er het gelukkige probleem zijn dat alle tekst geplakt wordt zonder spatie of regeleinden.

In Linux is het gemakkelijk om van het ene formaat naar het andere te converteren zonder iets te installeren gebruik op ons systeem deze commando's:

  • VAN DOS NAAR UNIX:

We zullen het commando gebruiken tr, gevolgd door de parameter -d en het juiste EOL-teken. We zullen ook de bekende "pipes" gebruiken om te werken met het DOS-tekstbestand ("filename") en degene die we willen genereren geconverteerd naar UNIX-formaat ("filename"). Natuurlijk moeten we eerst het cd-commando gebruiken om naar de map te gaan waar het te converteren bestand zich bevindt of vanuit de grafische interface het bestand doorgeven aan / Home (standaard waar de prompt zich bevindt):

tr -d '\n' < nombre_archivo > nombre_fichero</p>
  • VAN UNIX NAAR TWEE:

Nu zullen we het commando gebruiken dorst om een ​​Unix-bestand om te zetten in een DOS-type. Hiervoor gebruiken we de volgende syntaxis, waarbij we de naam van de bestanden vervangen door het te converteren bestand. Ik wil een verduidelijking geven, telkens als ik een bestand schrijf, bedoel ik het Unix-type en wanneer ik het bestand naar het Windows / DOS-type zet.

sed 's/$/\r/' nombre_fichero > nombre_archivo</p>

Hoe dan ook, in moderne teksteditors geeft het ons al de mogelijkheid om "Opslaan als”In het formaat dat we willen, zonder dat je het vanaf de terminal hoeft te doen. Maar het is altijd goed om meer te weten over de Linux-opdrachtregel. Een andere optie is om twee tools te gebruiken die voor dit doel zijn ontworpen, dos2unix en unix2dos, maar in veel distributies zijn ze niet standaard geïnstalleerd en moeten ze worden geïnstalleerd ...


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: AB Internet Networks 2008 SL
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.

  1.   blablah1233445 zei

    De juiste verklaring is
    tr -d 'r' bestandsnaam