Maksājuma metodes Abuse

Failu meklēšana pēc satura Linux: ack un ripgrep

03.05.2023, 23:33

Izmantojot failu meklēšanu pēc satura Linux operētājsistēmā, var ievērojami samazināt laiku un pūles, meklējot konkrētu informāciju lielās un sarežģītās failu sistēmās.

Kāpēc nepieciešams meklēt failus pēc satura

Šī meklēšana var būt īpaši noderīga, ja vēlaties atrast failus, kas satur noteiktu virkni vai atslēgvārdu, vai ja vēlaties atrast visus failus, kas atbilst noteiktam paraugam vai kritērijam.

Failu meklēšanu pēc satura var izmantot dažādiem uzdevumiem, piemēram, lai atrastu:

  • konkrētu tekstu lielos teksta failos
  • konfigurācijas failus un skriptus, kas satur noteiktus iestatījumus vai komandas
  • failus, kas satur konkrētus datus, piemēram, lietotāju vārdus vai tālruņa numurus
  • failus pēc satura tipa, piemēram, atrast visus failus, kas satur JPEG attēlus vai PDF dokumentus.

Vispārējais failu meklēšanas pēc satura mērķis ir atvieglot darbu ar failu sistēmu un atrast nepieciešamo informāciju failu sistēmā.

ack

Sāksim ar ack utilītu. Tā tika izveidota 2005. gadā kā alternatīva grep un ātri kļuva populāra izstrādātāju vidū.

Tam ir vairākas priekšrocības salīdzinājumā ar grep, tostarp:

  • gudrāka failu un izņēmumu meklēšana. Ack pēc noklusējuma meklē tikai tādos failos, kuros varētu būt jēga, piemēram, izslēdzot .svn vai .git mapes. Turklāt varat pievienot savus noteikumus un izņēmumus;
  • Ack pēc noklusējuma meklē slēptos failus un direktorijus;
  • Ack nemēģina meklēt visur, pat sistēmas mapēs, tāpat kā grep. Tas nozīmē, ka varat viegli atrast sistēmā paslēptus failus.

Piemēri, kā izmantot ack:

  • Atrodiet visus failus pašreizējā mapē un tās apakšmapēs, kuros ir vārds "test": ack "test".
  • Tas pats, bet izslēdziet failus ar paplašinājumu .bak: ack "test" --ignore-file=match:/.bak$/
  • Atrod visus failus pašreizējā mapē, kas satur virkni "hello", un izvada katra faila pirmās 2 rindiņas: ack "hello" --heading --max-count=2

ripgrep

Otrs interesants rīks ir ripgrep. Tas daudzējādā ziņā ir līdzīgs ack, bet izmanto ātrāku meklēšanas algoritmu, kas padara to īpaši noderīgu lieliem projektiem.

Šeit ir daži piemēri:

  1. Atrodiet visus failus pašreizējā mapē un tās apakšmapēs, kuros ir vārds "test": rg "test".
  2. Tas pats, bet izņemot failus ar paplašinājumu .bak: rg "test" --glob "!*.bak"
  3. Atrod visus failus pašreizējā mapē, kas satur virkni "hello", un izvada katra faila pirmās 2 rindas: rg "hello" --heading --max-columns=2

Nobeigumā ir vērts pieminēt fzf. Tas nav tikai virkņu meklētājs kā ack un ripgrep. Fzf tiek izmantots kā palīgprogramma failu, mapju un elementu meklēšanai sarakstā. Citādi tas darbojas līdzīgi kā ack/ripgrep, taču tam ir pievienota iespēja rezultātus filtrēt tiešraidē. Šeit ir daži piemēri:

  • Meklēt failus, kas sākas ar burtu F jūsu datorā: locate F | fzf -m
  • Iziet no pašreizējās mapes un pāriet uz vajadzīgo direktoriju: cd **<TAB> | fzf
  • Izvēlieties SVN versiju un nokopējiet tās numuru uz starpliktuvi: svn log | fzf --reverse --ansi | awk '{print $1}' | pbcopy

Cerams, ka šie rīki palīdzēs jums ātri un efektīvi atrast vajadzīgos failus un virknes. Neatkarīgi no tā, kuru no tiem izvēlaties, tie visi piedāvā paplašinātu meklēšanu, kas var ievērojami paātrināt darbu.