Computer in Hindi | Business in Hindi: linux command in hindi
Showing posts with label linux command in hindi. Show all posts
Showing posts with label linux command in hindi. Show all posts

Thursday, January 13, 2022

What is grep command in LINUX in Hindi - Linux Tutorial In Hindi

January 13, 2022 0
What is grep command in LINUX in Hindi - Linux Tutorial In Hindi

 Grep एक आवश्यक Linux और Unix कमांड है। इसका उपयोग किसी फ़ाइल में टेक्स्ट और स्ट्रिंग्स को खोजने के लिए किया जाता है। दूसरे शब्दों में, grep कमांड दिए गए स्ट्रिंग या शब्दों से मेल खाने वाली पंक्तियों के लिए दी गई फ़ाइल की खोज करता है। यह डेवलपर्स और sysadmins के लिए Linux और Unix जैसे सिस्टम पर सबसे उपयोगी कमांड में से एक है। आइए देखें कि लिनक्स या यूनिक्स जैसे सिस्टम पर grep का उपयोग कैसे करें।


नाम, "grep", यूनिक्स/लिनक्स टेक्स्ट एडिटर एड का उपयोग करते हुए एक समान ऑपरेशन करने के लिए उपयोग की जाने वाली कमांड से निकला है:

g/re/p

grep यूटिलिटीज एक परिवार है जिसमें फाइलों को खोजने के लिए grep, egrep और fgrep शामिल हैं। अधिकांश उपयोग के मामलों के लिए, गति के कारण fgrep पर्याप्त है और केवल तार और शब्दों को देख रहा है। हालाँकि, grep टाइप करना आसान है। इसलिए, यह एक व्यक्तिगत पसंद है।


grep command In Linux In Hindi & examples

नीचे कुछ मानक grep कमांड को उदाहरणों के साथ समझाया गया है ताकि आप Linux, macOS और Unix पर grep के साथ शुरुआत कर सकें:


  • Linux पर फ़ाइल नाम में शब्द वाली कोई भी पंक्ति खोजें:

grep 'word' filename

  • लिनक्स और यूनिक्स में 'बार' शब्द के लिए केस-असंवेदनशील खोज करें:

grep -i 'bar' file1

  • 'httpd' शब्द के लिए लिनक्स में वर्तमान निर्देशिका और इसकी सभी उपनिर्देशिकाओं में सभी फाइलों को देखें:

grep -R 'httpd' .

  • फ़्रंटपेज.एमडी नामक फ़ाइल में स्ट्रिंग 'निक्सक्राफ्ट' के प्रकट होने की कुल संख्या खोजें और प्रदर्शित करें:

grep -c 'nixcraft' frontpage.md


grep command in linux in hindi

आइए सभी कमांड और विकल्पों को विवरण में देखें।


Syntax

वाक्य रचना इस प्रकार है:

grep 'word' filename
fgrep 'word-to-search' file.txt
grep 'word' file1 file2 file3
grep 'string1 string2'  filename
cat otherfile | grep 'something'
command | grep 'something'
command option1 | grep 'data'
grep --color 'data' fileName
grep [-options] pattern filename
fgrep [-options] words file

Search a file with the help of grep command in Linux


बू उपयोगकर्ता के लिए /etc/passwd file खोजें, दर्ज करें:

grep boo /etc/passwd


नमूना आउटपुट:


foo:x:1000:1000:boo,,,:/home/boo:/bin/ksh

हम फ़ाइल की सभी पंक्तियों को खोजने के लिए fgrep/grep का उपयोग कर सकते हैं जिसमें एक विशेष शब्द होता है। उदाहरण के लिए, "कैलिफ़ोर्निया" शब्द वाली वर्तमान निर्देशिका में address.txt नाम की फ़ाइल की सभी पंक्तियों को सूचीबद्ध करने के लिए, चलाएँ:

fgrep California address.txt


कृपया ध्यान दें कि उपरोक्त आदेश उन पंक्तियों को भी लौटाता है जहां "कैलिफ़ोर्निया" दूसरे शब्दों का हिस्सा है, जैसे "कैलिफ़ोर्निया" या "कैलिफ़ोर्निया"। इसलिए केवल पंक्तियों को प्राप्त करने के लिए -w विकल्प को grep/fgrep कमांड के साथ पास करें जहां "कैलिफ़ोर्निया" पूरे शब्द के रूप में शामिल है:

fgrep -w California address.txt


आप शब्द केस यानी मैच बू, बू, बू और -i विकल्प के साथ अन्य सभी संयोजनों को अनदेखा करने के लिए grep को बाध्य कर सकते हैं। उदाहरण के लिए, निम्न आदेश टाइप करें:

grep -i "boo" /etc/passwd


अंतिम grep -i "boo" /etc/passwd कैट कमांड का उपयोग करके भी चला सकता है:

grep -i "boo" /etc/passwd


grep command in linux in hindi
grep command in linux in hindi



How to use grep recursively In Linux Tutorial In Hindi

आप recursively खोज कर सकते हैं अर्थात प्रत्येक निर्देशिका के अंतर्गत "192.168.1.5" स्ट्रिंग के लिए सभी फ़ाइलें पढ़ सकते हैं

$ grep -r "192.168.1.5" /etc/


या

$ grep -R "192.168.1.5" /etc/


नमूना आउटपुट:


/etc/ppp/options:# ms-wins 192.168.1.50

/etc/ppp/options:# ms-wins 192.168.1.51

/etc/NetworkManager/system-connections/Wired connection 1:addresses1=192.168.1.5;24;192.168.1.2;

आप फ़ाइल के नाम (जैसे /etc/ppp/options) से पहले एक अलग लाइन पर 192.168.1.5 के लिए परिणाम देखेंगे जिसमें यह पाया गया था। आउटपुट डेटा में फ़ाइल नामों को शामिल करने को -h विकल्प का उपयोग करके इस प्रकार दबाया जा सकता है:

$ grep -h -R "192.168.1.5" /etc/


या

$ grep -hR "192.168.1.5" /etc/


नमूना आउटपुट:


# ms-wins 192.168.1.50

# ms-wins 192.168.1.51

addresses1=192.168.1.5;24;192.168.1.2;


search words only with the help of grep in Linux In Hindi

जब आप boo की खोज करते हैं, तो grep fooboo, boo123, barfoo35 और अन्य से मेल खाएगा। आप grep कमांड को केवल उन पंक्तियों का चयन करने के लिए बाध्य कर सकते हैं जिनमें मैच होते हैं जो पूरे शब्द बनाते हैं यानी केवल बू शब्द से मेल खाते हैं:

$ grep -w "boo" file


2 अलग-अलग शब्दों को खोजने के लिए grep का उपयोग कैसे करें

निम्नानुसार egrep कमांड का प्रयोग करें:

$ egrep -w 'word1|word2' /path/to/file


Ignore case for grep command in linux

हम पैटर्न और डेटा में केस भेदों को अनदेखा करने के लिए grep को बाध्य कर सकते हैं। उदाहरण के लिए, जब मैं 'बार' खोजता हूं, तो 'बार', 'बार', 'बीएआर' आदि से मेल खाता हूं:

$ grep -i 'bar' /path/to/file


इस उदाहरण में, मैं एक खोज में सभी उपनिर्देशिकाओं को शामिल करने जा रहा हूँ:

$ grep -r -i 'main' ~/projects/


count line when words has been matched with grep commend

-c (गिनती) विकल्प का उपयोग करके grep यह रिपोर्ट कर सकता है कि प्रत्येक फ़ाइल के लिए पैटर्न का मिलान कितनी बार किया गया है:

$ grep -c 'word' /path/to/file


पाठ फ़ाइल में पंक्ति की संख्या के साथ आउटपुट की प्रत्येक पंक्ति से पहले -n विकल्प पास करें जिससे इसे प्राप्त किया गया था:

$ grep -n 'root' /etc/passwd


1:root:x:0:0:root:/root:/bin/bash

1042:rootdoor:x:0:0:rootdoor:/home/rootdoor:/bin/csh

3319:initrootapp:x:0:0:initrootapp:/home/initroot:/bin/ksh

Force grep invert match

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

$ grep -v bar /path/to/file

$ grep -v '^root' /etc/passwd 


Display lines before and after the match

अपने मैचों से पहले की लाइनें देखना चाहते हैं? -B को grep में पास करने का प्रयास करें:

grep -B NUM "word" file

grep -B 3 "foo" file1


इसी तरह, -ए को ग्रेप में पास करके अपने मैचों के बाद की पंक्तियों को प्रदर्शित करें:

grep -A NUM "string" /pth/to/file

grep -A 4 "dropped" /var/log/ufw.log


सबसे सार्थक आउटपुट प्राप्त करने के लिए हम उन दो विकल्पों को जोड़ सकते हैं:

grep -C 4 -B 5 -A 6 --color 'error-code' /var/log/httpd/access_log


यहाँ एक नमूना शेल स्क्रिप्ट है जो Linux कर्नेल डाउनलोड url प्राप्त करती है:

.......
...
_out="/tmp/out.$$"
curl -s https://www.kernel.org/ > "$_out"
#######################
## grep -A used here ##
#######################
url="$(grep -A 2 '<td id="latest_button">' ${_out}  | grep -Eo '(http|https)://[^/"]+.*xz')"
gpgurl="${url/tar.xz/tar.sign}"
notify-send "A new kernel version ($remote) has been released."
echo "* Downloading the Linux kernel (new version) ..."
wget -qc "$url" -O "${dldir}/${file}"
wget -qc "$gpgurl" -O "${dldir}/${gpgurl##*/}"