न्यूलाइन्स या कैरिज रिटर्न की गिनती लेकिन दोनों नहीं


1

अगर मैं ऐसा मैक फाइल पर करता हूं, तो मुझे लाइनों की सही संख्या मिलती है, लेकिन मुझे यूनिक्स फाइलों पर डबल लाइनें मिलती हैं:

cat /path/to/file.txt | tr '\r' '\n' | wc -l

यदि मैं एक यूनिक्स फ़ाइल पर ऐसा करता हूं, तो मुझे मैक फ़ाइल पर लाइनों की सही संख्या लेकिन शून्य लाइनें मिलती हैं:

cat /path/to/file.txt | wc -l

मुझे एक ही कमांड में सही संख्या में लाइनें कैसे मिलेंगी चाहे कोई भी फाइल सिस्टम ओरिजिन (लिनक्स, मैक, विंडोज) हो?


Mac का उपयोग \nMac OS X 10.0 (2001) से शुरू होता है। क्या आपको वास्तव में प्राचीन मैक फाइलें मिलती हैं \r?
मेलेबियस

@Melebius हाँ, जब एक्सेल के मैक संस्करण के साथ काम करते हैं।
EcomEvo

जवाबों:


0

मैं उन फ़ाइलों का निरीक्षण करने का सुझाव दूंगा, जो आपके द्वारा उपयोग की जाने वाली पंक्ति फ़ीड शैली को संभाल रही हैं।

$ od -t X1z

हेक्स बाइट्स और "एएससीआईआई" में फ़ाइल सामग्री को प्रिंट करेगा, 0 ए और 0 डी बाइट्स के लिए देखें।

मेरे पास एक बैश फ़ंक्शन है जो इस तरह के मुद्दों के साथ मदद करने के लिए ~ / .profile / या ~ / .bashrc में परिभाषित होता है:

फंक्शन od-crlf {
#DOC गूंज "ओड-क्रैफ़ल फ़ाइल - HEX w CR + LF वर्णों पर फ़ाइल सामग्री प्रदर्शित करता है"

  od -x -t X1z -w32 $ @ \
  | sed -re 's / (0a) / \ X1b [44m \ 1 \ X1b [m / g; s / (0d) / \ X1b [45m \ 1 \ X1b [m / g'
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.