vim
Tekstbestanden converteren van DOS naar UNIX met vi
Zoeken…
Opmerkingen
Het teken ^M
staat voor een regelterugloop in Vim ( <cm>
of alleen <CR>
). Vim geeft dit teken weer wanneer minstens een regel in het bestand LF
regeleinden gebruikt. Met andere woorden, wanneer Vim van mening is dat een bestand fileformat=unix
maar sommige regels wel regelterugloop ( CR
) hebben, worden de regelteruggaven weergegeven als ^M
Een bestand met een enkele regel met LF
regeluiteinde en meerdere regels met CRLF
regeluiteinden wordt meestal gemaakt door een bestand dat is gemaakt op een MSDOS-systeem verkeerd te bewerken. Bijvoorbeeld door een bestand te maken onder een MSDOS-besturingssysteem, het te kopiëren naar een op UNIX gebaseerd systeem en vervolgens een hash-bang-steek (bijvoorbeeld #!/bin/sh
) voor te stellen met behulp van tools op het op UNIX gebaseerde besturingssysteem.
Een DOS-tekstbestand converteren naar een UNIX-tekstbestand
Heel vaak heb je een bestand dat is bewerkt in DOS of Windows en je bekijkt het onder UNIX. Dit kan er als volgt uitzien wanneer u het bestand met vi bekijkt.
First line of file^M
Next Line^M
And another^M
Als u de ^ M wilt verwijderen, kan het zijn dat u elke ^ M met de hand verwijdert. Als alternatief kunt u na het raken van Esc het volgende invoeren bij de opdrachtprompt:
:1,$s/^M//g
Waar ^ M wordt ingevoerd met Ctrl en v samen en vervolgens Ctrl en m samen.
Dit voert het commando uit vanaf de eerste regel '1' tot de laatste regel '$', het commando is om 's' de '^ M' te vervangen voor niets '' en hieromtrent 'g'.
Het bestandsformaat van VIm gebruiken
Wanneer Vim een bestand opent met <CR><NL>
regeleindes (gebruikelijk op MSDOS gebaseerde besturingssystemen, ook wel CRLF
) zal het fileformat
op dos
, u kunt controleren wat met:
:set fileformat?
fileformat=dos
Of gewoon
:set ff?
fileformat=dos
Om het te converteren naar <NL>
regeleindes (gebruikelijk op de meeste op UNIX gebaseerde besturingssystemen, ook wel LF
), kunt u de fileformat
wijzigen en Vim zal de buffer wijzigen.
:set ff=unix