2009-03-18 12 views
22

मैं गूंज का उपयोग कर गैर-ASCII वर्ण कैसे लिखूं? क्या कोई बच निकला अनुक्रम है, जैसे कि \012 या ऐसा कुछ?मैं गूंज का उपयोग करके गैर-ASCII वर्ण कैसे लिखूं?

मैं का उपयोग कर एक फाइल करने के लिए ASCII वर्ण संलग्न करना चाहते हैं:

echo ?? >> file 

उत्तर

22

उपयोग

echo -e "\012" 
+2

यह कार्यक्षमता की आवश्यकता है यह पूरी तरह से POSIX के साथ असंगत है (केवल एक एक्सटेंशन नहीं, बल्कि * विनिर्देशन द्वारा सक्रिय रूप से अस्वीकृत *, जो '-n' को सम्मानित करने के अलावा कोई झंडे नहीं देता है), और POSIX मोड में भी बाश द्वारा सम्मानित नहीं किया जाएगा यदि ' xpg_echo' ध्वज सेट है। –

28

आप पोर्टेबिलिटी के बारे में परवाह है, तो आप ड्रॉप करेंगे गूंज और printf का उपयोग (1):

printf '\012' 
+3

... या, अगर किसी अनुक्रमित स्रोत से बचने के अनुक्रम को लेते हैं, तो 'printf'% b '' \ 012'', ऐसे अनुक्रमों का सम्मान करने के लिए, लेकिन अन्य प्रारूप स्ट्रिंग सामग्री नहीं। –

11

मेरे टर्मिनल, दोनों ASCII वर्ण की अष्टाधारी प्रतिनिधित्व, और इसी हेक्साडेसिमल के लिए

printf '\012' >>output.txt 

काम करता है:

printf '\xA' >>output.txt 

आदेश

echo -en '\012' >>output.txt 

हालांकि, ठीक से काम नहीं करता है। केवल hexadecimals echo -e के साथ काम करने लगते हैं। -n इको से डिफ़ॉल्ट अतिरिक्त न्यूलाइन को हटा देता है।

+2

_My_ सवाल वास्तव में टर्मिनल पर हेक्साडेसिमल को प्रिंट करने के तरीके पर था - इसे Google के माध्यम से मिला, और इसने मेरे प्रश्न का बहुत अच्छा जवाब दिया। यह पूछताछ के सवाल का भी जवाब देता है। यह अधिक अंक के लायक है। – Wyatt8740

1

मैं गैर- ASCII ले लिया यूनिकोड मतलब करने के लिए, कम से कम मेरे मामले में, लेकिन printf "\x##" मेरी 2-बाइट समाधान के लिए पर्याप्त नहीं था, इसलिए मैं इस थोड़ा अलग वाक्य रचना बजाय प्रयोग किया:

> printf "\u25ba" 
► 
संबंधित मुद्दे

 संबंधित मुद्दे