Linux in Hindi – Filters

  • Introduction to linux filters in Hindi
  • Linux filter commands in Hindi

Introduction to Linux Filters

Linux में filters या filter commands किसी plain text को किसी दूसरे बेहतर और उपयोगी रूप में transform करती है।

Filter commands standard input से data accept करती है और standard output पर transform किये गए data को produce (show) करती है।

सभी linux filter commands pipes के साथ कार्य करती है। Pipe के प्रयोग से पता चलता है की वह एक filter command है। कई बार ऐसा भी कहा जाता है की जो command pipe के साथ करती है वह filter command होती है।

Mostly filter commands को दो pipes के बीच define किया जाता है और ऐसे में ये उस file के output को filter करती है।

Linux में 10 से भी अधिक filter commands available है। इन्हे प्रयोग करना बहुत ही आसान है।

Linux Filter Commands

cat

Linux में cat एक universal command है। यह कई प्रकार से use की जाती है। लेकिन जब इसे एक filter के रूप में use किया जाता है तो यह कोई transformation नहीं करती है। Cat filter command simply input लेती है और output show कर देती है।

tac abc.txt |cat|

ऊपर दी गयी command क्योंकि tac है इसलिए यह file के content को reverse में show करती है। लेकिन क्योंकि इसके आखिर में cat filter apply किया गया है। इसलिए इसे normal order में ही show होना चाहिए। लेकिन ऐसा नहीं होता है क्योंकि जैसा की पहले बताया गया है cat filter command कोई transformation नहीं करती है।

tee

Cat filter command input को simply output के रूप में show करती है। इसी प्रकार की एक linux filter command tee है। यह command भी tac filter की तरह ही कार्य करती है।

लेकिन यह command output को standard output पर show करने के अलावा file में भी store करती है। इसलिए यदि आप output को file में store करने की सोच रहे है तो इसके लिए tee filter command use की जा सकती है।

tac abc.txt |tee new-file| cat

grep

यदि आप किसी ऐसे pattern matching tool की तलाश कर रहे है जो किसी pattern को match करता हुआ output show करे तो इसके लिए linux में grep filter available है।

Linux में grep filter command किसी pattern matching tool की तरह कार्य करती है। इसका उपयोग बहुत व्यापक है। इस command की full form global regular expression print है।

इस filter command का सबसे साधारण उपयोग किसी file में कोई text search करना और उन lines को print करना जिनमे वह text available है।

जैसे यदि आप Employees.txt file से सिर्फ उन्ही employees के नाम show करना चाहते है जिनका surname Verma है तो इसके लिए इस प्रकार command execute की जा सकती है।

cat Employees.txt | grep Verma

इस filter command को बिना pipe के भी use किया जा सकता है।

grep Verma Employees.txt

Options of Linux Grep Command

Linux grep filter command के साथ कई महत्वपूर्ण options available है।

-v

यह option उन lines को display करता है जिनमें pattern match नहीं होता है।

grep -v Verma Employee.txt 

दी गयी command उन lines को display करती है जिनमे Verma शब्द नहीं है।

-i

Linux grep command का यह option case sensitive pattern matching के लिए प्रयोग किया जाता है। जैसे किसी ने Age के लिए command execute की है तो उसे Age वाली line ही return की जाएगी age या agE आदि दूसरे cases की line नहीं output की जाएगी।

grep -i verma Employee.txt 
-a

यह option match किये जा रहे expression से पूर्व की line return करता है।

-b

यह option match होने वाले expression के बाद की line return करता है।

-c

cut

Linux में cut filter command किसी file के specific columns को display करने के लिए प्रयोग की जाती है।

जैसे कोई file है जो information को columns में store करती है और एक delimiter जैसे की hyphen, space और slash आदि से separate करती है तो ऐसी file के किसी specific column cut filter command से access किया जा सकता है।

cut -d<delimiter> -f<columnNumber> file-name 

इस command में -d के बाद आप delimiter define करते है और -f के बाद वह column number define करते है जिसे आप access करना चाहते है। इसके बाद file का नाम mention किया जाता है।

Employee.txt

Employee – Salary

Jogi Verma – 10000

Salesh Sharma – 20000

Nitin kumar – 30000

cut -d- -f2 Employee.txt

Command सभी employees की salary यानी की second column return करती है।

comm

यह filter command दो files को compare करती है और उनके matching और non matching items को show करती है। यह command पूर्णतः उपयोगी तब ही होती है जब दोनों files में information columns के रूप में store की गयी हो।

comm file1-name file2-name

Linux comm filter command का output 3 lines में show किया जाता है। पहले column में पहली file के non matching items show किये जाते है। दूसरे column में दूसरी file के non matching items show किये जाते है। आखिर column में दोनों files के matching content show किये जाते है।

comm Employee.txt Employee2.txt

इस command के output के रूप में आप एक single column भी display करवा सकते है।

ऐसा करने के लिए आपको column को आप display करवाना चाहते है उसे छोड़कर बाकी के दोनों columns को define करते है। जैसे आप सिर्फ first column show करना चाहते है तो second और third column को specify करेंगे।

comm -23 Employee.txt Employee2.txt

sed

Linux आपको regular expression के प्रयोग से किसी file को edit करने की ability provide करता है। इसके लिए sed filter command use की जाती है।

इस command का पूरा नाम stream editor command होता है। यँहा पर stream file को कहा गया है।

इस command के बारे में एक महत्वपूर्ण बात यह है की जो भी editing आप करते है वह सिर्फ output में display होती है। असल content किसी प्रकार का कोई बदलाव नहीं होता है।

जैसे sed command के साथ regular expression का प्रयोग करके आप file में किसी text को replace करने के लिए इस प्रकार command लिखेंगे।

cat Employee.txt | sed 's/Verma/Sharma/'

यह command सिर्फ Verma शब्द की first occurrence को ही change करती है। यदि आपको file के सभी words को change करना है तो इसके लिए आप regular expression के आखिर में global replacement का प्रयोग करते है।

cat Employee.txt | sed 's/Verma/Sharma/g'

यदि आप file से एक specific word वाली line delete करना चाहते है तो इसके लिए regular expression के आखिर में d option का प्रयोग कर सकते है। ऐसा करने से उस word वाली सभी lines delete हो जाएँगी।

cat Employee.txt | sed ‘/Verma/g’

tr

Linux में tr filter command lowercase to uppercase और uppercase to lowercase translation के लिए प्रयोग की जाती है। इसका पूरा नाम translate होता है।

cat Employee.txt | tr 'Verma' 'VERMA'

इसमें सबसे पहले आप वह word define करते है जिसे आप translate करना चाहते है और उसके बाद वह word define करते है जैसे रूप में आप translate करना चाहते है।

इस command के द्वारा new line character को spaces के द्वारा replace किया जा सकता है।

cat Employee.txt | tr '\n' ' '

इस command के साथ -s option के प्रयोग से आप एक ही character की multiple occurrences को remove कर सकते है।

cat Employee.txt | tr -s 'V'

इसके अलावा आप -d option के प्रयोग से किसी character को delete भी कर सकते है।

cat Employee.txt | tr -d 'V'

uniq

Linux में uniq filter command किसी file के content को short करने के लिए प्रयोग की जाती है। इस command का पूरा नाम unique होता है।

Output में हर word सिर्फ एक बार sorting (ascending) order में display होता है।

cat Employee.txt | uniq

इस command के साथ -c option के प्रयोग से आप किसी word की कितनी occurrences हुई है यह भी display कर सकते है।

cat Employee.txt | uniq -c

wc

Linux wc filter command का पूरा नाम word count होता है। यह command किसी file के characters, words और lines की सँख्या display करती है।

Lines की सँख्या के लिए -l option, words के लिए -w और characters की सँख्या के -c option का प्रयोग किया जाता है।

यदि इस command को बिना किसी option के use किया जाता है तो यह तीनो information एक साथ display करती है।

wc -l Employee.txt
wc -w Employee.txt
wc -c Employee.txt

od

Linux में od filter command किसी file के content को non human readable forms जैसे की ASCII, Hexadecimal और octal आदि में convert करने के लिए प्रयोग की जाती है।

इस command का पूरा नाम octal dump होता है। Different formats के लिए different options use किये जाते है।

Binary या octal format के लिए -b option, hexadecimal form के लिए -t x1 option और ASCII format के लिए -c option use किया जाता है।

od -b Employee.txt

sort

यह filter command किसी file के content को alphabet order में जैसे a,b,c क्रम में show करती है। आप directly इस command के बाद file का नाम लिखते है और output के रूप में ordered data show कर दिया जाता है।

sort Employee.txt

यदि आप file के किसी specific column को sort करना चाहते है तो इसके लिए उस column का number file के नाम से पूर्व define करते है।

sort -k2 Employee.txt

यँहा Employee.txt file के second column को sort करके दिखाया गया है।

यदि किसी column का data numeric form में है तो उसे sort करने के लिए आप -n option का प्रयोग कर सकते है।

sort -n -k2 Employee.txt

gzip

Linux में gzip filter command किसी file को compress करने के लिए प्रयोग की जाती है। इससे उस file की size कम हो जाती है। इस command के execute होने पर असल file compress की गयी file द्वारा replace कर दी जाती है जिसका extension .gz होता है।

इस extension की file से पुराने extension वाली file को extract करने के लिए gunzip command use की जाती है और आपको वापस वही extension वाली file कम size में प्राप्त हो जाती है।

ये एक बहुत ही useful command है। इससे एक साथ कई files को compress किया जा सकता है।

gzip abc.txt Employee.txt
gunzip abc.gz Employee.gz 

यँहा abc और Employee file को एक साथ compress और decompress किया गया है।

इस command के द्वारा multiple files को एक file के रूप में भी compress किया जा सकता है।

cat file1 file2 | gzip > new-file-name

इस command के साथ यदि आप -l option use करते है तो आपको compression ratio बताया जाता है। यानी की असल file को कितना compress किया गया है यह दर्शाया जाता है।