vim
Vi के साथ DOS से UNIX तक पाठ फ़ाइलों को परिवर्तित करना
खोज…
टिप्पणियों
^M
चरित्र का अर्थ है गाड़ी का वापसी के लिए Vim ( <cm>
या just <CR>
)। कम से कम फ़ाइल में लाइन पर LF
लाइन अंत का उपयोग करता है जब विम इस चरित्र को प्रदर्शित करता है। दूसरे शब्दों में, जब विम फ़ाइल को fileformat=unix
मानती है, लेकिन कुछ लाइनों में कैरेज रिटर्न ( CR
) होता है, तो कैरेज रिटर्न को ^M
रूप में प्रदर्शित किया जाता है।
एक फाइल जिसमें LF
लाइन एंडिंग वाली सिंगल लाइन होती है और CRLF
लाइन एंडिंग्स वाली कई लाइनें अक्सर MSDOS बेस्ड सिस्टम पर बनी फाइल को गलत तरीके से एडिट करके बनाई जाती हैं। उदाहरण के लिए, MSDOS ऑपरेटिंग सिस्टम के तहत एक फाइल बनाकर, इसे UNIX आधारित सिस्टम में कॉपी किया जाता है, और फिर UNIX आधारित ऑपरेटिंग सिस्टम पर टूल्स का उपयोग करके हैश-बैंग स्टिंग (जैसे #!/bin/sh
) को प्रीपेड किया जाता है।
DOS पाठ फ़ाइल को UNIX पाठ फ़ाइल में परिवर्तित करना
अक्सर आपके पास एक फ़ाइल होती है जिसे डॉस या विंडोज के भीतर संपादित किया गया था और आप इसे यूनिक्स के तहत देख रहे हैं। जब आप फ़ाइल को vi के साथ देखते हैं तो यह निम्नलिखित की तरह लग सकता है।
First line of file^M
Next Line^M
And another^M
यदि आप ^ M को हटाना चाहते हैं, तो ऐसा हो सकता है कि आप हाथ से प्रत्येक ^ M को हटा दें। वैकल्पिक रूप से, vi में Esc मारने के बाद आप कमांड मोड प्रॉम्प्ट पर निम्नलिखित दर्ज कर सकते हैं:
:1,$s/^M//g
जहाँ ^ M को एक साथ Ctrl और v के साथ दर्ज किया जाता है और फिर Ctrl और m को एक साथ जोड़ा जाता है।
यह पहली पंक्ति '1' से अंतिम पंक्ति '$' तक कमांड को कार्यान्वित करता है, कमांड '' 'M' को 'कुछ नहीं' के लिए और विश्व स्तर पर 'जी' के स्थान पर है।
VIm के फाइलफॉर्मैट का उपयोग करना
जब विम <CR><NL>
लाइन के अंत (MSDOS आधारित ऑपरेटिंग सिस्टम पर आम, जिसे CRLF
भी कहा जाता है) के साथ एक फ़ाइल खुलती है, तो यह fileformat
को dos
सेट करेगा, आप देख सकते हैं कि इसके साथ क्या है:
:set fileformat?
fileformat=dos
या केवल
:set ff?
fileformat=dos
इसे परिवर्तित करने के लिए <NL>
लाइन एंडिंग (अधिकांश UNIX आधारित ऑपरेटिंग सिस्टमों पर आम, जिसे LF
भी कहा जाता है) आप fileformat
सेटिंग को बदल सकते हैं और विम बफर को बदल देगा।
:set ff=unix