डॉस लाइन अंत से यूनिक्स लाइन के अंत तक फ़ाइलों को पुन: परिवर्तित करना


11

मैं एक ऐसी कमांड की तलाश कर रहा हूं, जिसका उपयोग मैं एक पूरी निर्देशिका और उपनिर्देशिका पर चलने के लिए कर सकूं जो DOS से UNIX तक की सभी लाइन एंडिंग्स को बदल देगी।

यह पता लगाने में सक्षम होना चाहिए कि क्या फ़ाइल पाठ या बाइनरी है।

मैंने dos2unixmacports का उपयोग करके स्थापित किया है लेकिन ऐसा लगता है कि यह पुनरावर्ती विकल्प को याद नहीं करता है।


फाइल या बाइनरी को कैसे परिभाषित करें?
user151019

पाठ: 32 से नीचे कोई ASCII, TAB, CR, LF को छोड़कर।
मैक्स राइड

जवाबों:


22

कोशिश करो find . -name "*" -type f -exec dos2unix {} \;


यदि dos2unixआपके सिस्टम पर उपलब्ध नहीं है, तो आप निम्न स्क्रिप्ट का उपयोग कर सकते हैं (जैसे dos2unixकि निष्पादित करें और निष्पादन योग्य के रूप में सेट करें):

#!/bin/sh

perl -pi -e 's/\r\n/\n/;' $*

इस कमांड को Git रिपॉजिटरी की जड़ में न चलाएं वरना आप अपने रिपॉजिटरी को बर्बाद कर देंगे!
निक

इसके अलावा, मेरे पास perl -pi -e 's/\r\n|\n|\r/\n/;' $*( स्रोत ) का उपयोग करने के लिए बेहतर भाग्य था
निक

1

यहाँ एक लाइन शेल कोड है find . -name "*" -type f -exec perl -pi -e 's/\r\n/\n/;' {} \;


एक पंक्ति के उत्तर हतोत्साहित किए जाते हैं। अधिक विवरण जोड़ने का प्रयास करें, या इस पर टिप्पणी करें।
मैक्स राइड

विज्ञापित के रूप में काम करता है! और क्या जोड़ना है? ;-)
ताइको

2
हम्म ... अच्छी तरह से यह कुछ पीएनजी फ़ाइलों को पेंच किया था। देखभाल के साथ संभाल
Taiko
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.