Si të printoni ndeshjen e parë dhe të ndaloni me Grep
grep
është një mjet kërkimi në Linux që përdoret për përputhjen e përmbajtjes. Si parazgjedhje, ai do të printojë çdo rresht që përputhet, i cili mund të përfshijë shumë rezultate. Nëse kujdeseni vetëm për ndeshjen e parë, mund ta kufizoni daljen vetëm në rreshtin e parë.
Kufizimi i prodhimit me grep -m
Komanda grep
ka një parametr -m
ose --max-count
r, i cili mund ta zgjidhë këtë problem, por mund të mos funksionojë siç e prisnit.
Ky parametër do të bëjë që grep
të ndalojë përputhjen pasi të gjejë N linja që përputhen, gjë që funksionon shkëlqyeshëm pasi do të kufizojë daljen në një rresht, që gjithmonë përmban përputhjen e parë. Këtë mund ta verifikojmë me flamurin -n
për të printuar numrat e rreshtave.
grep -m 1 "foo" file
Megjithatë, kjo ka disa dobësi për të cilat duhet të keni parasysh. Nuk ndalon pas N përputhjeve, por ndalon pas N linjave. Kjo do të bëjë që grep
të përputhet disa herë në secilën rresht, gjë që mund të jetë problem kur përdoret me flamurin -o
, i cili printon çdo përputhje në një rresht të ri.
Gjithashtu, janë vetëm N rreshta për skedar, kështu që kur përdoret kundër skedarëve të shumtë, ai do të printojë rreshtin e parë që përputhet për çdo skedar.
Përdorimi i kokës për të kufizuar daljen grep
Alternativa është të dërgoni daljen në një komandë tjetër, head
, e cila thjesht do të ndërpresë hyrjen pas rreshtave N. Është ende pak e dobishme të përdoret -m 1
me grep
megjithatë, pasi do të ndalojë përpunimin e skedarëve të mëdhenj nëse një përputhje gjendet herët.
grep "foo" file_one.txt | head -1
Kjo funksionon me flamurin -o
për të printuar vetëm ndeshjen e parë, edhe nëse ka shumë përputhje në një skedar:
Megjithatë, kini kujdes kur e përdorni këtë me shumë skedarë. Përdorimi i head
do të printojë rreshtin e parë të përputhur në çdo skedar. Ky mund të jetë një problem pasi grep
shtyp rezultatin sipas radhës që përpunon skedarët dhe mund të mos e dini se në çfarë renditje do të përpunohen skedarët, përveçse nëse i renditni manualisht përpara se t'i kaloni te grep
.
Në mënyrë të ngjashme, mund të përdorni gjithashtu bisht
për të printuar rreshtin e fundit që përputhet.