ग्रहण और विंडोज की नई सुर्खियाँ


182

जब मेरा डेस्कटॉप दुर्घटनाग्रस्त हुआ तो मुझे अपने एक्लिप्स कार्यक्षेत्र को लिनक्स से विंडोज पर ले जाना पड़ा। एक हफ्ते बाद मैं इसे वापस लिनक्स पर कॉपी करता हूँ, कोड खुशी से, सीवीएस के लिए। और अफसोस, विंडोज़ की नई कहानियों ने कई फाइलों को प्रदूषित कर दिया है, इसलिए सीवीएस पूरी फाइल को अलग कर देती है, तब भी जब मैंने एक या दो लाइन बदली!

मैं एक स्क्रिप्ट पका सकता था, लेकिन मैं सोच रहा हूं कि क्या यह मेरी एक्लिप्स प्रोजेक्ट फाइलों को गड़बड़ कर देगा।


1
एक परियोजना में कुछ / सभी फ़ाइलों के लिए बस कुछ क्लिकों के साथ लाइन एंडिंग को परिवर्तित करने के लिए: stackoverflow.com/a/7019737/1364747
Teddy

जवाबों:


358

जैसा कि यहां और यहां बताया गया है :

UTF-8यूनिक्स के लिए नई फ़ाइलों के लिए फ़ाइल एन्कोडिंग और लाइन-एंडिंग सेट करें , ताकि पाठ फ़ाइलों को एक प्रारूप में सहेजा जाए जो विंडोज ओएस के लिए विशिष्ट नहीं है और सबसे आसानी से विषम डेवलपर डेस्कटॉप में साझा किया गया है:

  • कार्यस्थान वरीयताओं पर नेविगेट करें (सामान्य: कार्यक्षेत्र)
  • पाठ फ़ाइल को इनकोडिंग में बदलें UTF-8
  • नई टेक्स्ट फ़ाइल लाइन परिसीमन को अन्य में बदलें और पिक-लिस्ट से यूनिक्स चुनें

वैकल्पिक शब्द

  • नोट: किसी मौजूदा फ़ाइल की लाइन अंत को बदलने के लिए, फ़ाइल को ग्रहण में खोलें और चुनें File : Convert Line Delimiters to : Unix

युक्ति : आप पैकेज एक्सप्लोरर में और फिर मेनू प्रविष्टि में जाकर मौजूदा फ़ाइल को आसानी से बदल सकते हैंFile : Convert Line Delimiters to : Unix


2
Thats वास्तव में मैं क्या देख रहा था! मैंने इसे नई फ़ाइलों के लिए पहले से ही बदल दिया था, लेकिन कन्वर्ट करने का विकल्प - मेरी आँखें छूट गईं। धन्यवाद VonC!
वासु

@ वासु: आपका स्वागत है :)। आउटलाइन दृश्य और पैकेज एक्सप्लोरर में बहु-चयनित तत्वों के लिए कुछ विशेषताएं हैं जिन्हें अक्सर अनदेखा किया जाता है।
VONC

महान लेखन। एक्लिप्स की भयावह भूलभुलैया वरीयताओं के माध्यम से खुद के लिए यह खोज मुझे पागल कर रही थी।
सेरीन

39
यदि आप पैकेज एक्सप्लोरर में एक पूरी परियोजना चुनते हैं तो आप एक File : Convert Line Delimiters to : Unixही बार में प्रोजेक्ट की सभी फाइलों को "ठीक" करने के लिए कमांड का उपयोग कर सकते हैं ।
ताल वीस

11

मेरे पास एक ही थी, एक लाइन में बदलाव के साथ भी प्रदूषित फाइलें। समाधान: ग्रहण सेटिंग्स -> प्रविष्टि जोड़ें: कुंजी: core.autocrlf मान: सच

यहां छवि विवरण दर्ज करें

यहां छवि विवरण दर्ज करें


हालांकि यह अधिकांश मामलों के लिए एक ठीक समाधान है, यह आपको काट सकता है - उदाहरण के लिए जब आप स्रोत फ़ाइलों पर चेकसम की गणना कर रहे हैं। ये तब प्लेटफॉर्म से प्लेटफार्म तक अलग-अलग होंगे।
zb226

8

एक आसान बैश उपयोगिता है - dos2unix- जो UNIX पाठ फ़ाइल प्रारूप कनवर्टर के लिए एक डॉस / मैक है, कि यदि पहले से ही आपके डिस्ट्रो पर स्थापित नहीं किया गया है, तो पैकेज प्रबंधक के माध्यम से आसानी से स्थापित किया जा सकता है। dos2unix मैन पेज


मैं अपने ग्रहण कार्यक्षेत्र पर पुनरावृत्ति करने के लिए एक स्क्रिप्ट लिखने की योजना बना रहा था। केवल चिंता किसी भी ग्रहण आंतरिक परियोजना फाइलों को दूषित कर रही थी। तुम्हारे सुझाव के लिए धन्यवाद!
वासु

7

एक्लिप्स समाधान और एक अन्य उत्तर में वर्णित टूल के अलावा , फ्लिप पर विचार करें । यह सामान्य और विंडोज लाइनब्रेक के बीच या तो 'फ्लिप' कर सकता है, और फाइल के टाइमस्टैम्प और अन्य आँकड़ों को संरक्षित करने जैसी अच्छी चीजें करता है।

आप अपनी समस्या को हल करने के लिए इसका उपयोग इस तरह कर सकते हैं:

find . -type f -not -path './.git/*' -exec flip -u {} \;

(यदि आप git का उपयोग करते हैं, तो मैं आपकी .it निर्देशिका को अनदेखा करने के लिए एक खंड में डालता हूं, लेकिन चूंकि फ्लिप डिफ़ॉल्ट रूप से बाइनरी फ़ाइलों को अनदेखा करता है, इसलिए आपको इसकी आवश्यकता नहीं हो सकती है।)


बस एक नोट ... यह कमांड लिनक्स उपयोगकर्ताओं के लिए है, विंडोज उपयोगकर्ताओं के लिए नहीं। विंडोज findइस तरह से काम नहीं करता है।
ब्रैड

@ ब्रैड सही है। हालाँकि, फ्लिप का
साइग्विन

3

आप इसे आजमा सकते हैं। समस्या यह है कि एक नई लाइन दिए जाने पर विंडोज एक गाड़ी रिटर्न के साथ-साथ एक लाइन फीड भी सम्मिलित करता है। यूनिक्स-सिस्टम सिर्फ एक लाइन फीड डालें। तो अतिरिक्त कैरिज रिटर्न कैरेक्टर यही कारण हो सकता है कि आपका ग्रहण नई कहानियों के साथ खिलवाड़ करे।

अपने प्रोजेक्ट से एक या दो फाइलें ले लीजिए और उन्हें कन्वर्ट करें। आप ऐसा करने के लिए नोटपैड ++ का उपयोग कर सकते हैं। बस फ़ाइल खोलें, प्रारूप-> यूनिक्स में कनवर्ट करें (जब आप विंडोज़ का उपयोग कर रहे हैं) पर जाएं।

लिनक्स में बस एक कमांड लाइन पर यह कोशिश करें:

sed 's/$'"/`echo \\\r`/" yourfile.java > output.java

मेरे पास लगभग 10k फाइलें हैं! इसलिए इसे किसी तरह से स्वचालित करना पड़ा। सलाह के लिए धन्यवाद!
वासु

अपने CLI पर कुछ टाइपो त्रुटि: sed -i 's/$`echo \\\r`//' yourfile.javaऔर इसे स्वचालित करने के लिएfind . -name "*.java" -exec sed -i 's/$`echo \\\r`//' {} \;
pdem

3

\rसभी बाल निर्देशिकाओं में सीवीएस / * फ़ाइलों से गाड़ी के रिटर्न ( ) को पुन: हटाने के लिए , एक यूनिक्स >> में निम्नलिखित चलाएँ:

find ./ -wholename "\*CVS/[RE]\*" -exec dos2unix -q -o {} \;
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.