Linux और Unix सिस्टम में, tr एक कमांड-लाइन उपयोगिता है जो अनुवाद करती है, मिटाती है, और “निचोड़ती है दोहराए गए वर्ण - वास्तव में, tr का अर्थ है "अनुवाद ।" यह मार्गदर्शिका उदाहरण के साथ लिनक्स में tr कमांड का उपयोग करने का तरीका बताती है। इसका उपयोग संचालन के लिए किया जा सकता है जैसे दोहराए गए वर्णों को हटाना, लोअरकेस को अपरकेस में परिवर्तित करना, और मूल प्रतिस्थापन और वर्णों को हटाना। यह अक्सर पाइपिंग के माध्यम से अन्य आदेशों के संयोजन में प्रयोग किया जाता है।
लिनक्स बुनियादी कर्नेल/ऑपरेटिंग सिस्टम कोर है, जिसका उपयोग हम दिन-प्रतिदिन के आधार पर करते हैं, जिसमें एंड्रॉइड भी शामिल है - हम में से कई लोगों के पास हमारे मोबाइल फोन पर प्लेटफॉर्म होगा। यह खुला स्रोत है और आसानी से विन्यास योग्य है।
tr कमांड का उपयोग कैसे करें
tr कमांड को चलाने के लिए सिंटैक्स इस प्रकार है, जहां SET1 . में वर्ण हैं SET2 . में वर्णों में अनुवाद किया जाना है :
tr OPTION... SET1 [SET2]
tr कमांड वर्णों के दो सेट (आमतौर पर समान लंबाई) को स्वीकार करता है। इसके बाद यह पहले सेट के पात्रों को दूसरे सेट से संबंधित वर्णों से बदल देता है। इस परिदृश्य में, एक SET वर्णों की एक स्ट्रिंग है और इसमें विशेष बैकस्लैश-एस्केप वर्ण शामिल हैं।
उदाहरण
वर्णों की श्रेणी का उपयोग करना
यदि आप चाहें तो आप वर्ण वर्गों के बजाय श्रेणियों का भी उपयोग कर सकते हैं:
echo 'hello' | tr 'a-z' 'A-Z'
दूसरे तरीके से बदलने के लिए, बस सेट के स्थान बदलें।
कन्वर्ट केस
अपर केस को लोअर केस में बदलना या इसके विपरीत tr कमांड के सबसे आम उपयोग के मामलों में से एक है।
[:निचला:] सभी लोअर केस वर्णों से मेल खाता है, और [:अपर:] सभी बड़े अक्षरों से मेल खाता है।
echo 'Hello' | tr '[:lower:]' '[:upper:]' HELLO
रिक्त रेखाएं हटाएं
रिक्त पंक्तियों को हटाने के लिए, आपको "निचोड़ . करना होगा दोहराए जाने वाले न्यूलाइन वर्ण:
tr -s '\n' < input.txt > output.txt
उपरोक्त में, हम पुनर्निर्देशन प्रतीक का उपयोग कर रहे हैं, जो तब कमांड के आउटपुट को output.txt पर लिखता है। ।
सभी गैर-संख्यात्मक वर्ण हटाएं
निम्न आदेश सभी गैर-संख्यात्मक वर्णों को हटा देता है:
echo "The account number is 10879358" | tr -cd [:digit:]
[:अंक:] सभी अंक वर्णों के लिए खड़ा है। -c . का उपयोग करके विकल्प, कमांड गैर-संख्यात्मक वर्णों को हटा देता है। बाद का आउटपुट इस तरह दिखेगा:
10879358
$PATH निर्देशिका को एक नई लाइन पर प्रिंट करें
$PATH पर्यावरण चर निर्देशिकाओं की एक सूची है (कोलन सीमांकित) जो शेल को बताती है कि जब आप एक कमांड टाइप करते हैं तो कौन सी निर्देशिका निष्पादन योग्य फाइलों को देखती है। प्रत्येक निर्देशिका को एक अलग नई लाइन पर प्रिंट करने के लिए, हमें कोलन से मिलान करना होगा (: ) और फिर इसे नई लाइन कमांड से बदलें:
echo $PATH | tr ':' '\n' /usr/local/sbin /usr/local/bin /usr/sbin /usr/bin /sbin /bin /usr/games /usr/local/games /snap/bin
प्रत्येक शब्द को एक नई पंक्ति में रखें
ऐसा करने के लिए, हमें सभी वर्णों का मिलान करना होगा (जो अल्फ़ा-न्यूमेरिक नहीं हैं ) और फिर उन्हें एक नई लाइन से बदलें:
echo 'Linux is the best operating system in the world' | tr -cs '[:alnum:]'
आउटपुट है:
Linux is the best operating system in the world
अक्षर बदलें
यदि हम मानक इनपुट ('कोडिंग') से वर्णों को दूसरे सेट के संगत वाले से बदलना चाहते हैं।
echo 'coding' | tr 'co' 'hi'
परिणाम के साथ "c" की प्रत्येक घटना को "h" और "o" को "i" से बदल दिया जाता है:
hiding
कैरेक्टर सेट को कैरेक्टर रेंज का उपयोग करके भी परिभाषित किया जा सकता है। उदाहरण के लिए, लिखने के बजाय:
echo 'coding' | tr 'abcd' 'wxyz'
आप उपयोग कर सकते हैं:
echo 'coding' | tr 'a-d' 'w-z' yozing
जब -c विकल्प का उपयोग किया जाता है, tr उन सभी वर्णों को प्रतिस्थापित करता है जो नहीं . हैं SET1 . में ।
निम्नलिखित उदाहरण में, “li . को छोड़कर सभी वर्ण ” को दूसरे सेट के अंतिम वर्ण से बदल दिया जाएगा:
$ echo 'coding' | tr -c 'cod' 'xy' liyyyiyyy
एक नई लाइन के बिना एक स्ट्रिंग को प्रतिध्वनित करने के लिए, -n विकल्प का उपयोग करें।
-d विकल्प tr को SET1 . में निर्दिष्ट वर्णों को हटाने के लिए कहता है . जब आप इसे बिना निचोड़े करना चाहते हैं, तो आपको केवल एक सेट निर्दिष्ट करना चाहिए।
नीचे दिया गया आदेश l, I, और z . को हटा देगा वर्ण:
echo 'Linuxize' | tr -d 'liz'