पर अपेक्षित व्यवहार के रूप में व्यवहार नहीं कर रहा है मेरे प्रश्न का उत्तर SO पर मौजूद हो सकता है, लेकिन मैंने ईमानदारी से कड़ी मेहनत की है और इसे नहीं मिला। मुझे सबसे नज़दीकी मिला this Q&A था लेकिन मैं अपने मशीन (ओएसएक्स 10.7.5, bash
का उपयोग करके) पर अपने परिणाम पुन: पेश नहीं कर सका।हेक्स कोड sed में - ओएसएक्स
यहाँ मुद्दा अपने सार करने के लिए कम है: मैं sed
\xnn
(जैसे \x41
A
के लिए) हेक्स पात्रों के रूप में व्याख्या करने के लिए नहीं मिल सकता है। क्या मुझे विशेष रूप से पागल गाड़ी चला रहा है यह है: A
में
echo -e '\x41'
परिणाम - तो ओएस और अपने कार्यों मेरी हेक्स कोड को समझने ...
echo -e '\x41' | sed 's/A/B/'
परिणाम B
में - के रूप में उम्मीद, हेक्स के बाद से कोड A
में बदला गया था इससे पहले कि sed
यह
लेकिन
echo A | sed 's/\x41/B/'
देखा
परिणाम A
में - मैं B
की उम्मीद है | मैं में A
echo A | LANG='' sed 's/\x41/B/'
डिट्टो तरह
echo A | LANG='C' sed 's/\x41/B/'
परिणाम चीजों की कोशिश की है ...
echo A | sed 's/[\x41]/B/'
परिणामों में A
लेकिन ...
echo A | sed 's/[\x41-\x41]/B/'
परिणाम B
में ???
क्या मैं पूरी तरह बेवकूफ हूं? या sed
के साथ वास्तव में कुछ अजीब है? यह स्पष्ट रूप से एक श्रेणी में हेक्स कोड की व्याख्या कर सकता है, लेकिन मुझे इसे एक वर्ण के रूप में व्याख्या नहीं किया जा सकता है। मैं क्या खो रहा हूँ?
कृपया ध्यान दें - मैं OSX पर जवाब है कि दोनों स्पष्टीकरण दें कि ऊपर जिस तरह से यह है बर्ताव कर रही है के लिए देख रहा हूँ, और के लिए यह संभव एक sed
स्ट्रिंग में कहीं भी एक एकल हेक्स कोड सम्मिलित करने के लिए बनाने के तरीके, मंच। इसका अर्थ है "खोज", और s/
कमांड के "प्रतिस्थापित" भाग में। क्योंकि मैंने स्पष्ट रूप से दिखाया है कि मैं एक वर्ण के लिए [\ xnn- \ xnn] खोज सकता हूं; वह जवाब नहीं है जिसे मैं ढूंढ रहा हूं।
अग्रिम धन्यवाद!
इसके लिए धन्यवाद। यदि "sed हेक्स कोड नहीं करता है", तो आप मेरे आखिरी उदाहरण को कैसे समझाते हैं- यह * दिखता है * जैसे कि रेड अभिव्यक्ति में हेक्स समझ रहा है ... – Floris
"आप मेरे आखिरी उदाहरण को कैसे समझाते हैं" - मैंने स्वयं में समझाया उत्तर, नीचे ... – Floris
sed अभिव्यक्ति (दूसरे भाग) के विकल्प भाग में हेक्स एन्कोडिंग का उपयोग करने के तरीके पर कोई विस्तार? मैंने कोशिश की: 'echo -ne' एक \ x0db '| sed $/s/\ x0d/\ x0a/g '| हेक्सडम्प-सी' और 'echo -ne' एक \ x0db '| sed $/s/\ x0d/\\ x0a/g '| हेक्सडम्प-सी 'का कोई फायदा नहीं हुआ। अन्यथा, यह वही था जो मैं ढूंढने की उम्मीद कर रहा था। – mpettis