Is féidir le cuardach ábhair comhaid i Linux an t-am agus an iarracht a theastaíonn chun faisnéis shonrach a chuardach i gcórais chomhad móra agus casta a laghdú go suntasach.
Cén fáth a gcaithfidh tú comhaid a chuardach de réir ábhair?
Is féidir leis an gcuardach seo a bheith thar a bheith úsáideach nuair is gá duit comhaid a aimsiú ina bhfuil teaghrán nó eochairfhocal ar leith, nó nuair is gá duit gach comhad a aimsiú a chomhlíonann patrún nó critéir ar leith.
Is féidir cuardach a dhéanamh ar chomhaid de réir ábhair le haghaidh tascanna éagsúla, amhail cuardach a dhéanamh ar:
- téacs ar leith i gcomhaid téacs móra
- comhaid chumraíochta agus scripteanna ina bhfuil socruithe nó orduithe sonracha
- comhaid ina bhfuil sonraí sonracha, amhail ainmneacha úsáideoirí nó uimhreacha gutháin
- comhaid de réir cineál ábhair, amhail gach comhad ina bhfuil íomhánna JPEG nó doiciméid PDF a aimsiú.
Is é cuspóir ginearálta cuardaigh comhad de réir ábhair ná go mbeadh sé níos éasca oibriú leis an gcóras comhad agus an fhaisnéis riachtanach a aimsiú ann.
ack
Tosaímis leis an bhfóntas ack. Cruthaíodh é sa bhliain 2005 mar mhalairt ar grep agus tháinig tóir air go gasta i measc forbróirí.
Tá roinnt buntáistí aige thar grep , lena n-áirítear:
- Cuardaigh agus eisiaimh chomhad níos cliste. Ní chuardaíonn Ack ach comhaid a d’fhéadfadh ciall a bhaint astu de réir réamhshocraithe, amhail fillteáin .svn nó .git a eisiamh. Agus is féidir leat do rialacha agus eisiaimh féin a chur leis;
- cuardaigh comhaid agus eolairí i bhfolach de réir réamhshocraithe;
- Ní dhéanann Ack iarracht cuardach a dhéanamh i ngach áit, fiú i bhfillteáin chórais, cosúil le
grep. Ciallaíonn sé seo gur féidir leat comhaid atá i bhfolach sa chóras a aimsiú go héasca.
Samplaí d'úsáid ack:
- Aimsigh na comhaid uile sa bhfillteán reatha agus ina fho-fhillteáin ina bhfuil an focal
"test": ack "test"- Mar an gcéanna, ach gan comhaid leis an
.bak: ack "test" --ignore-file=match:/.bak$/- Aimsigh na comhaid uile sa bhfillteán reatha ina bhfuil an teaghrán "hello" agus priontáil an chéad 2 líne de gach comhad:
ack "hello" --heading --max-count=2
ripgrep
Is é ripgrep an dara huirlis spéisiúil. Tá sé cosúil le ack ar go leor bealaí, ach úsáideann sé algartam cuardaigh níos tapúla, rud a fhágann go bhfuil sé thar a bheith úsáideach do thionscadail mhóra.
Seo roinnt samplaí:
- Aimsigh na comhaid uile sa bhfillteán reatha agus ina fho-fhillteáin ina bhfuil an focal
"test": rg "test" - Mar an gcéanna, ach gan comhaid leis an
.bak: rg "test" --glob "!*.bak" - Aimsigh na comhaid uile sa bhfillteán reatha ina bhfuil an teaghrán "hello" agus priontáil an chéad 2 líne de gach comhad:
rg "hello" --heading --max-columns=2
Ar deireadh, is fiú trácht ar fzf. Ní inneall cuardaigh teaghrán amháin atá ann cosúil le ack agus ripgrep. Úsáidtear fzf mar fheidhmchlár chun comhaid, fillteáin agus míreanna i liosta a chuardach. Seachas sin, oibríonn sé cosúil le ack/ripgrep, ach leis an gcumas breise na torthaí a scagadh beo. Seo roinnt samplaí:
- Cuardaigh comhaid ag tosú le F ar do ríomhaire:
locate F | fzf -m- Fág an fillteán reatha agus téigh go dtí an t-eolaire atá uaim:
cd **<TAB> | fzf- Roghnaigh athbhreithnithe SVN agus cóipeáil an uimhir chuig an ngearrthaisce:
svn log | fzf --reverse --ansi | awk '{print $1}' | pbcopy
Tá súil againn go gcabhróidh na huirlisí seo leat na comhaid agus na teaghráin atá uait a aimsiú go tapa agus go héifeachtúil. Cibé ceann a roghnaíonn tú, cuireann siad uile cuardach ardleibhéil ar fáil a fhéadfaidh luas suntasach a chur le do chuid oibre.



