एंड्रॉयड

उदाहरणों के साथ लिनक्स कट कमांड

Simple filters - Hindi

Simple filters - Hindi

विषयसूची:

Anonim

लिनक्स और यूनिक्स प्रणालियों में कई उपयोगिताओं उपलब्ध हैं जो आपको पाठ फ़ाइलों को संसाधित करने और फ़िल्टर करने की अनुमति देती हैं। कट एक कमांड लाइन उपयोगिता है जो आपको निर्दिष्ट फ़ाइलों या पाइप किए गए डेटा से लाइनों के कुछ हिस्सों को काटने और परिणाम को मानक आउटपुट पर प्रिंट करने की अनुमति देता है। इसका उपयोग सीमांकक, बाइट स्थिति और वर्ण द्वारा एक पंक्ति के कुछ हिस्सों को काटने के लिए किया जा सकता है।

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

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

कट कमांड के लिए सिंटैक्स निम्नानुसार है:

cut OPTION……

कट कमांड का उपयोग करते समय आपको निम्नलिखित विकल्पों में से एक और एक का उपयोग करना चाहिए:

  • -f ( --fields=LIST ) - फ़ील्ड, फ़ील्ड्स, या फ़ील्ड्स की एक श्रेणी निर्दिष्ट करके चुनें। यह सबसे अधिक इस्तेमाल किया जाने वाला विकल्प है। -b ( --bytes=LIST ) - एक बाइट, बाइट्स का एक सेट या बाइट्स की एक श्रृंखला को निर्दिष्ट करके चुनें। -c ( --characters=LIST ) - एक चरित्र, वर्णों का एक समूह या वर्णों की एक श्रृंखला को निर्दिष्ट करके चुनें।

अन्य विकल्प हैं:

  • -d ( --delimiter ) - एक --delimiter निर्दिष्ट करें जिसका उपयोग डिफ़ॉल्ट "TAB" सीमांकक के बजाय किया जाएगा। - पूरक - चयन के पूरक। इस विकल्प का उपयोग करते समय कटौती चयनित को छोड़कर सभी बाइट्स, वर्ण या फ़ील्ड प्रदर्शित करेगी। -s (- --only-delimited ) - डिफ़ॉल्ट रूप से किसी भी रेखा को मुद्रित करेगा जिसमें कोई सीमांकक वर्ण नहीं है। इस विकल्प का उपयोग करते समय कटौती में सीमांकक युक्त रेखाएं नहीं प्रिंट होंगी। --output-delimiter - डिफ़ॉल्ट इनपुट सीमांकक का उपयोग उत्पादन परिसीमाक के रूप में करता है। यह विकल्प आपको एक अलग आउटपुट सीमांकक स्ट्रिंग निर्दिष्ट करने की अनुमति देता है।

कट कमांड शून्य या अधिक इनपुट फाइल नामों को स्वीकार कर सकता है। यदि कोई फ़ाइल निर्दिष्ट नहीं है, या जब फ़ाइल है - , तो कट मानक मानक पढ़ेगा।

LIST तर्क -f , -b , और -c विकल्पों में दिया गया एक पूर्णांक हो सकता है, कई पूर्णांक अल्पविराम से अलग हो सकते हैं, पूर्णांक की एक श्रेणी, या एकाधिक पूर्णांक सीमाएं अल्पविराम से अलग हो सकती हैं। प्रत्येक सीमा निम्न में से एक हो सकती है:

  • N , Nth फ़ील्ड, बाइट या वर्ण, 1. N- फ़ील्ड से, N- फ़ील्ड, बाइट या वर्ण से शुरू होकर रेखा के अंत तक। Nth से Mth क्षेत्र, बाइट या चरित्र के लिए NM -M से Mth क्षेत्र, बाइट या चरित्र तक।

फ़ील्ड द्वारा कैसे काटें

कट कमांड का उपयोग ज्यादातर चयनित फ़ाइलों की प्रत्येक पंक्ति या मानक इनपुट से प्रदर्शित करने के लिए किया जाता है। जब निर्दिष्ट नहीं किया जाता है तो डिफ़ॉल्ट सीमांकक "TAB" होता है।

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

test.txt

245:789 4567 M:4540 Admin 01:10:1980 535:763 4987 M:3476 Sales 11:04:1978

आपके द्वारा उपयोग किए जाने वाले पहले और तीसरे क्षेत्र को प्रदर्शित करने के लिए:

cut test.txt -f 1, 3

245:789 M:4540 535:763 M:3476

या यदि आप पहली से चौथी फील्ड में प्रदर्शित करना चाहते हैं:

cut test.txt -f -4

245:789 4567 M:4540 Admin 535:763 4987 M:3476 Sales

कैसे एक सीमांकक के आधार पर कटौती करने के लिए

एक सीमांकक के आधार पर कटौती करने के लिए -d विकल्प का उपयोग करें जिसके बाद परिसीमनकर्ता आप का उपयोग करना चाहते हैं।

उदाहरण के लिए, एक सीमांकक के रूप में ":" का उपयोग करके पहली और तीसरी फ़ील्ड प्रदर्शित करने के लिए, आप टाइप करेंगे:

cut test.txt -d ':' -f 1, 3

245:4540 Admin 01 535:3476 Sales 11

आप किसी भी एक पात्र का परिसीमन के रूप में उपयोग कर सकते हैं। निम्नलिखित उदाहरण में हम स्पेस कैरेक्टर को एक सीमांकक के रूप में उपयोग कर रहे हैं और दूसरे क्षेत्र को प्रिंट कर रहे हैं:

echo "Lorem ipsum dolor sit amet" | cut -d ' ' -f 2

ipsum

कैसे चयन के पूरक हैं

चयन फ़ील्ड सूची के उपयोग के लिए --complement पूरक विकल्प का उपयोग करें। यह केवल उन फ़ील्ड्स को प्रिंट करेगा, जिन्हें -f विकल्प के साथ नहीं चुना गया है।

निम्न आदेश 1 और 3 को छोड़कर सभी फ़ील्ड प्रिंट करेगा:

cut test.txt -f 1, 3 --complement

4567 Admin 01:10:1980 4987 Sales 11:04:1978

एक आउटपुट सीमांकक कैसे निर्दिष्ट करें

आउटपुट परिसीमन निर्दिष्ट करने के लिए --output-delimiter विकल्प का उपयोग करें। उदाहरण के लिए, आउटपुट सीमांकक को _ सेट करने के लिए आप उपयोग करेंगे:

cut test.txt -f 1, 3 --output-delimiter='_'

245:789_M:4540 535:763_M:3476

बाइट्स और कैरेक्टर्स को कैसे काटें

किसी भी आगे जाने से पहले, बाइट्स और वर्णों के बीच अंतर करें।

एक बाइट 8 बिट है और 256 विभिन्न मूल्यों का प्रतिनिधित्व कर सकता है। जब ASCII मानक स्थापित किया गया था तो यह अंग्रेजी के साथ काम करने के लिए आवश्यक सभी अक्षरों, संख्याओं और प्रतीकों को ध्यान में रखा गया था। ASCII वर्ण तालिका में 128 वर्ण हैं और प्रत्येक वर्ण को एक बाइट द्वारा दर्शाया गया है। जब कंप्यूटर वैश्विक रूप से लोकप्रिय होने लगे, तो तकनीकी कंपनियों ने विभिन्न भाषाओं के लिए और 256 से अधिक वर्णों वाली भाषाओं के लिए नए चरित्र एन्कोडिंग शुरू करने शुरू किए, 1 से 1 मानचित्रण संभव नहीं था। यह विभिन्न समस्याओं जैसे दस्तावेज़ों या ब्राउज़िंग वेबसाइटों और एक नया यूनिकोड मानक है जो दुनिया के अधिकांश लेखन प्रणालियों को संभाल सकता है, की आवश्यकता थी। इन समस्याओं को हल करने के लिए UTF-8 बनाया गया था। UTF-8 में, सभी पात्रों को 1 बाइट के साथ नहीं दिखाया गया है। वर्णों को 1 बाइट से 4 बाइट तक दर्शाया जा सकता है।

निम्नलिखित उदाहरणों में, हम 2 बाइट्स लेने वाले ü वर्ण का उपयोग कर रहे हैं।

एक बाइट स्थिति को निर्दिष्ट करके लाइन के एक अनुभाग को काटने के लिए -b ( --bytes ) विकल्प का उपयोग करें।

5 वें बाइट का चयन करें:

echo 'drüberspringen' | cut -b 5

b

5 वें, 9 वें और 13 वें बाइट्स का चयन करें:

echo 'drüberspringen' | cut -b 5, 9, 13

bpg

पहली से 5 वीं बाइट तक की सीमा का चयन करें:

echo 'drüberspringen' | cut -b 1-5

drüb

इस लेख को लिखने के समय GNU कोरुटिल्स में बंधे कट के संस्करण में पात्रों द्वारा कटौती करने का विकल्प नहीं है। -c विकल्प का उपयोग करते समय -b विकल्प का उपयोग करते समय कटौती का व्यवहार वैसा ही होता है।

कटे हुए उदाहरण

कट कमांड को आमतौर पर पाइपिंग के माध्यम से अन्य कमांड के साथ संयोजन में उपयोग किया जाता है। कुछ उदाहरण निम्नलिखित हैं।

सभी उपयोगकर्ताओं की एक सूची प्राप्त करें

getent passwd कमांड का आउटपुट cut करने के लिए पास किया cut जो 1 फाइल का उपयोग करके प्रिंट करता है : सीमांकक के रूप में।

getent passwd | cut -d ':' -f1

10 सबसे अधिक बार उपयोग किए जाने वाले आदेश देखें

निम्नलिखित उदाहरण में कट का उपयोग history कमांड आउटपुट की प्रत्येक पंक्ति से पहले 8 बाइट्स को छीनने के लिए किया जाता है।

history | cut -c8- | sort | uniq -c | sort -rn | head

निष्कर्ष

अब तक आपको लिनक्स कट कमांड का उपयोग करने की अच्छी समझ होनी चाहिए। हालांकि बहुत उपयोगी, कट कमांड की कुछ सीमाएं हैं। यह एक सीमांकक के रूप में एक से अधिक वर्णों को निर्दिष्ट करने का समर्थन नहीं करता है और यह कई डेसीमीटर का समर्थन नहीं करता है।

कटौती टर्मिनल