vim
Konvertera textfiler från DOS till UNIX med vi
Sök…
Anmärkningar
Tecknet ^M
står för en vagnretur i Vim ( <cm>
eller bara <CR>
). Vim visar detta tecken när åtminstone på rad i filen använder LF
linjeavslut. Med andra ord, när Vim anser att en fil har fileformat=unix
men vissa rader har vagnreturer ( CR
), visas vagnreturerna som ^M
En fil som har en enda rad med LF
linjeslut och flera rader med CRLF
skapas oftast genom att felaktigt redigera en fil som skapats på ett MSDOS-baserat system. Till exempel genom att skapa en fil under ett MSDOS-operativsystem, kopiera den till ett UNIX-baserat system och sedan förbereda en hash-bang-sting (t.ex. #!/bin/sh
) med hjälp av verktyg på det UNIX-baserade operativsystemet.
Konvertera en DOS-textfil till en UNIX-textfil
Ofta har du en fil som redigerades inom DOS eller Windows och du tittar på den under UNIX. Det kan se ut som följande när du visar filen med vi.
First line of file^M
Next Line^M
And another^M
Om du vill ta bort ^ M kan det vara så att du tar bort varje ^ M för hand. Alternativt, i vi efter att ha träffat Esc, kan du ange följande i kommandolägesprompt:
:1,$s/^M//g
Där ^ M matas in med Ctrl och v tillsammans och sedan Ctrl och m tillsammans.
Detta kör kommandot från den första raden '1' till den sista raden '$', kommandot är att ersätta 's' '' M 'för ingenting' 'och mot denna globala' g '.
Med hjälp av VIm: s filformat
När Vim öppnar en fil med <CR><NL>
radändningar (vanligt på MSDOS-baserade operativsystem, även kallad CRLF
) kommer den att ställa in fileformat
till dos
, du kan kontrollera vad med:
:set fileformat?
fileformat=dos
Eller bara
:set ff?
fileformat=dos
För att konvertera det till <NL>
linjeändningar (vanligt på de flesta UNIX-baserade operativsystem, även kallad LF
) kan du ändra fileformat
och Vim kommer att ändra bufferten.
:set ff=unix