2010-06-24 8 views
5

को वामो कन्वर्ट हम एक खोल स्क्रिप्ट कैरिज रिटर्न + linefeed को LineFeed.sh जो एक linefeed (LF) परिवर्तित करने के एक समारोह करता है नाम की फ़ाइल है। हम विंडोज़ में बैच फ़ाइल द्वारा ऐसा करना चाहते हैं। क्या यह संभव है?बैच फ़ाइल + सीआर + वामो

लिनक्स खोल फ़ाइल

E_WRONGARGS=65 
cat OutputList|while read -r Line 
do 
if [ -z "$Line" ] 
then 
echo "Usage: `basename $0` filename-to-convert" 
exit $E_WRONGARGS 
fi 
NEWFILENAME=$Line.unx 
CR='\015' # Carriage return. 
     # 015 is octal ASCII code for CR. 
     # Lines in a DOS text file end in CR-LF. 
     # Lines in a UNIX text file end in LF only. 
tr -d $CR < $1 > $NEWFILENAME // here its deleting CR but i need to append LF 
# Delete CR's and write to new file. 
done 
echo "Original DOS text file is \"$1\"." 
echo "Converted UNIX text file is \"$NEWFILENAME\"." 
exit 0 
+0

http://www.google.com/search?q=unix2dos.bat – Heinzi

+2

@Heinzi: http://meta.stackexchange.com/questions/5280/embrace-the-non-googlers – Joey

+0

@Johannes: असल में , मेरी टिप्पणी ने सिर्फ सवाल नहीं किया लेकिन जवाब भी दिया। हाँ, मैं अत्यधिक संक्षेप में था; वर्बोज़ संस्करण होगा: "आपको स्वयं ऐसा करने की आवश्यकता नहीं है; यूनिक्स 2 डीओएस नामक एक स्क्रिप्ट है जो वही करता है जो आप चाहते हैं और विंडोज पोर्ट उपलब्ध हैं, जिन्हें आमतौर पर 'unix2dos.bat' कहा जाता है। यदि आप उस कीवर्ड के लिए Google हैं, आपको इसे डाउनलोड करने के लिए बहुत सारे स्रोत मिलेंगे। " (फिर भी, मुझे आपकी बात मिलती है, लिंक के लिए धन्यवाद।) – Heinzi

उत्तर

13

आप this Wikipedia page पर एक तरह से पा सकते हैं:

TYPE unix_file | FIND "" /V > dos_file 

याद रखें कि आप एक ही फाइल आप से पढ़ रहे हैं उससे उत्पादन उपयोग नहीं कर सकते। यह बहुत सारे सिस्टम और गोले पर लागू होता है, इसलिए एक अतिरिक्त नाम आवश्यक है।

यहां कुंजी यह है कि type जानता है कि एलएफ लाइन के अंत और find को कैसे पढ़ा जाए, तो उन्हें सीआरएलएफ करें। type अकेले आउटपुट के साथ कुछ भी नहीं करेगा (ऐसा माना जाता है, क्योंकि ऐसा आदेश होने से जो फ़ाइल सामग्री को उनके साथ गड़बड़ कर देता है वह अच्छा नहीं है :-))।

+3

आपका पॉइंट? – Joey