Modhanna íocaíochta Abuse

Ag Cuardach Comhad de réir Ábhair i Linux: ack agus ripgrep

03.05.2023, 23:33

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í:

  1. Aimsigh na comhaid uile sa bhfillteán reatha agus ina fho-fhillteáin ina bhfuil an focal "test": rg "test"
  2. Mar an gcéanna, ach gan comhaid leis an .bak: rg "test" --glob "!*.bak"
  3. 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.