एंड्रॉयड

उदाहरणों के साथ linux में Tr कमांड

Linux Tutorial for Beginners: Introduction to Linux Operating System

Linux Tutorial for Beginners: Introduction to Linux Operating System

विषयसूची:

Anonim

tr लिनक्स और यूनिक्स प्रणालियों में एक कमांड-लाइन उपयोगिता है जो मानक इनपुट से वर्णों का अनुवाद करता है, हटाता है और निचोड़ता है और मानक आउटपुट को परिणाम लिखता है।

tr कमांड बार-बार वर्णों को हटाने, अपरकेस को लोअरकेस में परिवर्तित करने, और मूल वर्ण को बदलने और हटाने जैसे ऑपरेशन कर सकता है। आमतौर पर, इसका उपयोग पाइपिंग के माध्यम से अन्य कमांड के साथ संयोजन में किया जाता है।

इस ट्यूटोरियल में, हम आपको दिखाएंगे कि व्यावहारिक उदाहरणों और सबसे सामान्य विकल्पों की विस्तृत व्याख्या के माध्यम से tr कमांड का उपयोग कैसे करें।

tr कमांड का उपयोग कैसे करें

tr कमांड का सिंटैक्स इस प्रकार है:

tr OPTION… SET1

tr आमतौर पर समान लंबाई वाले वर्णों के दो सेटों को स्वीकार करता है, और पहले सेटों के पात्रों को दूसरे सेट से संबंधित वर्णों के साथ बदल देता है।

SET मूल रूप से वर्णों का एक स्ट्रिंग है, जिसमें विशेष बैकस्लैश-एस्केप वर्ण शामिल हैं।

निम्नलिखित उदाहरण में, tr सभी वर्णों को मानक इनपुट (linuxize) से बदल देगा, पहले सेट के पात्रों को दूसरे सेट से मिलान वाले अक्षर से मैप करके।

echo 'linuxize' | tr 'lin' 'red'

l की प्रत्येक घटना को r , i साथ e , और n साथ d :

reduxeze

चरित्र श्रेणियों का उपयोग करके वर्ण सेट को भी परिभाषित किया जा सकता है। उदाहरण के लिए, लिखने के बजाय:

echo 'linuxize' | tr 'lmno' 'wxyz'

आप उपयोग कर सकते हैं:

echo 'linuxize' | tr 'ln' 'w-z'

जब -c ( --complement ) विकल्प का उपयोग किया जाता है, तो tr उन सभी वर्णों को बदल देता है जो SET1 में नहीं हैं।

"ली" को छोड़कर सभी वर्णों के नीचे के उदाहरण में दूसरे सेट से अंतिम वर्ण को बदल दिया जाएगा:

echo 'linuxize' | tr -c 'li' 'xy'

liyyyiyyy

जैसा कि आपने देखा होगा, ऊपर के आउटपुट में इनपुट की तुलना में एक अधिक दृश्यमान चरित्र है। ऐसा इसलिए है क्योंकि echo कमांड एक अदृश्य न्यूलाइन वर्ण प्रिंट करता है जिसे y साथ भी बदला गया है। एक नई लाइन के बिना एक स्ट्रिंग प्रतिध्वनित करने के लिए, -n विकल्प का उपयोग करें।

--delete ( --delete ) विकल्प --delete को SET1 में निर्दिष्ट वर्णों को हटाने के लिए कहता है। निचोड़ के बिना वर्ण हटाते समय, केवल एक सेट निर्दिष्ट करें।

नीचे दी गई कमांड l , i और z अक्षर को हटा देगी:

echo 'Linuxize' | tr -d 'liz'

L वर्ण को हटाया नहीं गया है क्योंकि इनपुट में अपरकेस L जबकि SET में l वर्ण कम है।

Lnuxe

-s ( --squeeze-repeats ) विकल्प अंतिम SET में सेट किए गए वर्ण के साथ बार-बार होने वाले अनुक्रम की जगह लेता है।

निम्नलिखित उदाहरण में, tr दोहराया गया अंतरिक्ष वर्ण हटाता है:

echo "GNU \ Linux" | tr -s ' '

GNU \ Linux

जब SET2 का उपयोग किया जाता है SET1 में निर्दिष्ट वर्ण के अनुक्रम को SET2 से बदल दिया जाता है।

echo "GNU \ Linux" | tr -s ' ' '_'

GNU_\_Linux

--truncate-set1 ( --truncate-set1 ) विकल्प आगे की प्रक्रिया करने से पहले SET2 की लंबाई के लिए SET1 को छोटा करने के लिए tr को --truncate-set1

डिफ़ॉल्ट रूप से, यदि SET1 SET2 से बड़ा है, तो SET2 के अंतिम वर्ण का पुन: उपयोग करेगा। यहाँ एक उदाहरण है:

echo 'Linux ize' | tr 'abcde' '12'

आउटपुट से पता चलता है कि SET1 से e चरित्र SET2 के नवीनतम चरित्र से मेल खाता है, जो 2 :

Linux iz2

अब, -t विकल्प के साथ उसी कमांड का उपयोग करें:

echo 'Linux ize' | tr -t 'abcde' '12'

Linux ize

आप देख सकते हैं कि SET1 के अंतिम तीन अक्षर हटा दिए गए हैं। SET1 'ab' बन जाता है, SET2 की लंबाई समान होती है, और कोई प्रतिस्थापन नहीं किया जाता है।

संयोजन विकल्प

tr कमांड आपको इसके विकल्पों को संयोजित करने की भी अनुमति देता है। उदाहरण के लिए, निम्न आदेश पहले सभी वर्णों को 0 साथ छोड़कर फिर दोहराया गया 0 वर्णों को निचोड़ता है:

echo 'Linux ize' | tr -cs 'i' '0'

0i0i0

ट्र कमांड उदाहरण

इस भाग में, हम tr कमांड के सामान्य उपयोगों के कुछ उदाहरणों को शामिल करेंगे।

लोअर केस को अपर केस में कन्वर्ट करें

लोअर केस को अपर केस या रिवर्स में tr , tr कमांड के विशिष्ट उपयोग मामलों में से एक है। सभी निचले मामलों के पात्रों और से मेल खाता है सभी बड़े अक्षर से मेल खाता है।

echo 'Linuxize' | tr '' ''

LINUXIZE

चरित्र वर्गों के बजाय, आप श्रेणियों का उपयोग भी कर सकते हैं:

echo 'Linuxize' | tr 'az' 'A-Z'

ऊपरी मामले को निचले मामले में बदलने के लिए, बस सेट के स्थानों को स्विच करें।

सभी गैर-संख्यात्मक वर्ण निकालें

निम्न आदेश सभी गैर-संख्यात्मक वर्णों को निकालता है:

echo "my phone is 123-456-7890" | tr -cd

सभी अंकीय वर्णों के लिए खड़ा है, और -c विकल्प का उपयोग करके, कमांड सभी गैर-अंकीय वर्णों को हटा देता है। आउटपुट इस तरह दिखेगा:

1234567890

प्रत्येक शब्द को एक नई पंक्ति में रखें

प्रत्येक शब्द को एक नई पंक्ति में रखने के लिए, हमें सभी गैर-अल्फ़ान्यूमेरिक वर्णों का मिलान करना होगा और उन्हें एक नई पंक्ति के साथ बदलना होगा:

echo 'GNU is an operating system' | tr -cs '' '\n'

GNU is an operating system

खाली लाइनों को हटा दें

रिक्त लाइनों को हटाने के लिए केवल दोहराए जाने वाले न्यूलाइन वर्णों को निचोड़ें:

tr -s '\n' < file.txt > new_file.txt

ऊपर के कमांड में हम tr कमांड में file.txt के कंटेंट को पास करने के लिए रिडायरेक्शन सिंबल < का उपयोग कर रहे हैं। पुनर्निर्देशन > new_file.txt को कमांड का आउटपुट लिखता है।

$PATH निर्देशिकाओं को एक अलग लाइन पर प्रिंट करें

$PATH पर्यावरण चर, निर्देशिकाओं की एक बृहदान्त्र-सीमांकित सूची है जो शेल को बताती है कि कौन सी निर्देशिका निष्पादन योग्य फ़ाइलों को खोजने के लिए जब आप एक कमांड टाइप करते हैं।

प्रत्येक निर्देशिका को एक अलग लाइन पर प्रिंट करने के लिए हमें कॉलन (:) से मिलान करना होगा और उसे नई लाइन से बदलना होगा:

echo $PATH | tr ':' '\n'

/usr/local/sbin /usr/local/bin /usr/sbin /usr/bin /sbin /bin

निष्कर्ष

tr अक्षरों के अनुवाद या हटाने के लिए एक कमांड है।

यद्यपि बहुत उपयोगी है, tr केवल एकल वर्णों के साथ काम कर सकता है। अधिक जटिल पैटर्न मिलान और स्ट्रिंग हेरफेर के लिए, आपको sed या awk उपयोग करना चाहिए।

tr टर्मिनल