2014-05-23 7 views
9

परिवर्तित नहीं करता है मैंने विंडोज 7 पर चल रहे एक प्रोग्राम से टेक्स्ट फ़ाइल में परिणाम निर्यात किए, और फ़ाइल को जुबंटू 14.04 पर कॉपी किया। टर्मिनल में, मैंने dos2unix file.txt चलाया, जो मुझे converting file out_mapqtl.txt to Unix format बताता है। हालांकि, जब मैं less के साथ फ़ाइल को देखता हूं, तो मुझे अभी भी विंडोज एम एंड-लाइन के रूप में^एम, और wc -l मुझे "0" देता है।dos2unix^एम

मैंने here वर्णित कई चीजों की कोशिश की, लेकिन कोई भी काम नहीं करता है। मैंने फिर विम में फ़ाइल खोली और किया जैसा कि there समझाया गया, जो ठीक काम करता था। तो कोई विचार क्यों dos2unix काम नहीं किया? क्या हर बार विम खोलने से बचने का कोई तरीका होगा?

+0

यहां कुछ देर हो चुकी है ...लेकिन मैंने एक छोटा प्रोग्राम लिखा है जो डॉस 2unix से जीवन को आसान बनाता है जब आप इनपुट प्रारूप के बारे में सुनिश्चित नहीं होते हैं, या जब इनपुट प्रारूपों को अंतःस्थापित किया जाता है: https://github.com/mdolidon/endlines –

उत्तर

8

\r कैरिज रिटर्न को इंगित करता है, और मैक पर इसका उपयोग लाइन ब्रेक को दर्शाने के लिए \n के बिना किया जाता है। क्या आप सुनिश्चित हैं कि फ़ाइल डॉस (\r\n) प्रारूप में है और मैक (\r) नहीं है?

विम वास्तव में निकलती है तो केवल एक चीज है आपकी फ़ाइलों की मरम्मत चल जाएगा कि होने के लिए, आप भी यह के रूप में आह्वान कर सकते हैं:

vim somefile.txt +"%s/\r/\r/g" +wq

यह फ़ाइल खोलने कार्रवाई करने के लिए, यह बचत होगी, फिर छोड़ दें।

क्या आप हमें फ़ाइल का एक उदाहरण दे सकते हैं, ताकि हम आगे की जांच कर सकें?

+0

मेरे उत्तर की देरी के लिए खेद है। फ़ाइल विंडोज 7 पर बनाई गई थी, इस प्रकार मुझे लगता है कि यह डॉस प्रारूप में है। मुझे यह भी यकीन नहीं है कि कार्यक्रम मैक पर चलता है। वैसे, कार्यक्रम को [MapQTL] कहा जाता है (http://www.kyazma.nl/index.php/mc.MapQTL/)। वैसे भी, मेरी समस्या अब हल हो गई है, धन्यवाद। – tflutre

+0

हमें यह बताने के लिए धन्यवाद कि आपकी समस्या हल हो गई है, और मेरे समाधान को उत्तर के रूप में स्वीकार कर रहा है। –

+0

हाय, "% s/\ r/\ r/g" क्या करता है? यह sed अभिव्यक्ति की तरह दिखता है। "\ r" को "\ r" से प्रतिस्थापित करें? – nathan

1

इस प्रयास करें:

tr -d '\r' < file 
0

प्रयास करें:

:%s/\r\(\n\)/\1/g 

या

:%s/^M//g 
4

मैं जानता हूँ कि आप इस का समाधान मिल गया है, लेकिन मैं संदर्भ के लिए एक टिप्पणी जोड़ना चाहते थे, आधारित मैंने कुछ परीक्षण किए हैं।

यदि कम^^ दिखा रहा है, तो सिब्रेन की तरह मुझे संदेह है कि यह एक मैक शैली समाप्त हो रहा है (\ r), डॉस (\ r \ n) नहीं।

$ बिल्ली -e फ़ाइल नाम

  • यूनिक्स अंत (\ N) दिखाने के रूप में $
  • मैक अंत (\ r) के रूप में दिखाने^एम (: आप है कि आसानी से उपयोग कर रहा बिल्ली निर्धारित कर सकते हैं कम से पता चलता है इन)
  • डॉस \ Windows अंत (\ r \ n) ^एम $ के रूप में दिखाई देते हैं (कम इन दिखाने के लिए प्रकट नहीं होता है)

उपयोग dos2unix डॉस (^ एम $) अंत

उपयोग mac2unix मैक से छुटकारा पाने के छुटकारा पाने के लिए (^ एम) अंत - dos2unix इन से छुटकारा पाने के नहीं होंगे।

मेरे पास एक फ़ाइल थी जहां मुझे सभी गैर-यूनिक्स अंत से छुटकारा पाने के लिए dos2unix और mac2unix का उपयोग करना पड़ा।

+0

इस उत्तर के लिए धन्यवाद, मैं dos2unix चल रहा था, यह नहीं पता था कि फ़ाइल किसी भी तरह पुरानी मैक लाइन अंत का उपयोग कर रहा था। – Pellet