Slik konverterer du filer fra Linux / Unix Format til Windows og Vice Versa
Hvis du noen gang har overført en tekstfil fra et UNIX-basert system til et Windows-system, vet du at når du åpner tekstfilen på Windows-systemet, vises den vanligvis ikke riktig. Windows-baserte tekstleserprogrammer (som Notisblokk) kan kanskje ikke vise teksten. I de fleste tilfeller, når du åpner tekstfilen, blir alle ordene vist på en enkelt gigantisk linje uten noen pauser. Dette skyldes at det er en liten forskjell på hvordan et tekstdokument skrives (og leses) på Windows og UNIX.
Hvis en fil ble skrevet på et Windows-basert system og åpnet av en tekstredigerer på et UNIX-system, er det veldig vanlig at "Ctrl-M" -tegnene (^ M) vises på slutten av hver tekstlinje. Hvis en fil ble skrevet på et UNIX-system og åpnet av en tekstredigerer på et Windows-system, vises ikke linjeskiftetegnet (EOL) riktig. Vognreturkarakteren er også forskjellig for både UNIX og Windows.
Mens du arbeider med filer, vil du ikke bli begrenset av om filen ble opprettet på Linux eller Windows. Så hvordan konverterer du en fil fra UNIX til Windows (eller omvendt) uten at formateringen blir helt gal? Vi går deg gjennom trinnene.
Konvertere filer fra Linux / UNIX-format til Windows Format
Hvis du bruker et UNIX-basert system for å overføre filene til et Windows-system, er det noen kommandoer som lar deg konvertere tekstfilen / filene du overfører til et format som Windows kan forstå.
Dos2unix og unix2dos kommandoen
Du kan bruke kommandolinje til å konvertere filer fra UNIX til Windows og vice versa. For å konvertere en Windows-tekstfil til en UNIX-tekstfil, skriv dette inn:
dos2unix windows.txt unix.txt
Kommandoen ovenfor konverterer og erstatter "windows.txt" -filen til "unix.txt". For å konvertere en UNIX-tekstfil til en Windows-tekstfil, skriv inn denne kommandoen:
unix2dos unix.txt windows.txt
Kommandoen ovenfor vil konvertere en UNIX-opprettet tekstfil kalt "unix.txt" til en Windows-kompatibel tekstfil kalt "windows.txt".
Den awk kommandoen
Kommandoen awk
lar deg også konvertere en fil fra UNIX til Windows og omvendt. For å konvertere en Windows-fil til en UNIX-fil, skriv inn følgende kommando:
awk '{sub ("\ r $", ""); skriv ut} 'windows.txt> unix.txt
For å konvertere en UNIX-tekstfil kalt "unix.txt" til en Windows-tekstfil kalt "windows.txt", skriv inn følgende kommando:
awk 'sub ("$", "\ r")' uniz.txt> windows.txt
Tr-kommandoen
tr
kommandoen (transliterate) kan brukes til å fjerne vognreturtegnene og "Ctrl-Z" -tegnene fra en Windows-fil. Dette kan bare gjøres hvis du konverterer en fil fra Windows til UNIX. Kommandoen vil bli skrevet som følger:
tr-d '\ 15 \ 32' <winfile.txt> unixfile.txt
tr
kommandoen oversetter et tegn med en annen. I dette tilfellet hjelper det deg med å utelate unødvendige tegn.
Bruke Visual Editor (Vi)
Hvis du bruker Visual Editor til å vise en fil som er opprettet på et Windows-system, kan du fjerne vognreturs tegnene ved å skrive følgende kommandolinje:
: 1, $ s / ^ M // g
For å få datamaskinen til å skrive inn ^ M-karakteren, må du trykke "Ctrl + v" og deretter trykke Retur.
Bruke filoverføringsprotokollprogrammer
FTP-programmer (File Transfer Protocol) er tilgjengelige både for UNIX og Windows-systemet. Hvis du trenger å konvertere mange filer fra Windows til UNIX (eller omvendt), så er det en god idé å laste ned et FTP-program. Det er mange tilgjengelige gratis på Internett. Hummingbird FTP er et av de mest populære FTP-programmene der ute. Det er sikkert og enkelt å bruke.
De fleste FTP-programmer overfører filer fra UNIX til Windows i ASCII-format. Noen ganger må du spesifisere formatet for deg selv (hvis du bruker kommandolinjebaserte FTP-programmer). For å gjøre det, skriv bare inn dette på kommandolinjen:
ascii
Konklusjon
Den enkleste måten å konvertere en fil fra et UNIX-format til Windows (og omvendt) er å bruke et FTP-program. Konverteringskommandoene er din neste beste innsats. Hvis du ser etter flere kommandoer som utfører samme oppgave, kan du søke etter perl
og sed
kommandoer. Vær imidlertid oppmerksom på at disse kommandoene kanskje ikke fungerer på tvers av alle systemene.