Претраживање датотека по садржају у Линуксу: ack и ripgrep

03.05.2023
23:33

Коришћење претраге садржаја датотека у Линуксу може значајно смањити време и труд потребан за претрагу одређених информација у великим и сложеним фајл системима.

Зашто је потребно претраживати датотеке по садржају?

Ова претрага може бити посебно корисна када треба да пронађете датотеке које садрже одређени стринг или кључну реч или када треба да пронађете све датотеке које одговарају одређеном обрасцу или критеријуму.

Претраживање датотека по садржају може се користити за разне задатке, као што је претраживање:

  • одређени текст у великим текстуалним датотекама
  • конфигурационе датотеке и скрипте које садрже одређена подешавања или команде
  • датотеке које садрже одређене податке, као што су корисничка имена или бројеви телефона
  • датотеке по типу садржаја, као што је проналажење свих датотека које садрже JPEG слике или PDF документе.

Општа сврха претраживања датотека по садржају је да олакша рад са системом датотека и проналажење потребних информација у систему датотека.

назад

Почнимо са услужним програмом ack. Направљен је 2005. године као алтернатива grep-у и брзо је постао популаран међу програмерима.

Има неколико предности у односу на grep , укључујући:

  • Паметније претраге и изузимања датотека. Ack претражује само датотеке које подразумевано имају смисла, као што је изузимање .svn или .git фасцикли. Такође можете додати сопствена правила и изузимања;
  • претражи скривене датотеке и директоријуме по подразумеваним подешавањима;
  • Ack не покушава да претражује свуда, чак ни у системским фасциклама, као што је grep . То значи да можете лако пронаћи датотеке скривене у систему.

Примери коришћења команде ack:

  • Пронађи све датотеке у тренутној фасцикли и њеним подфасциклама које садрже реч "test": ack "test"
  • Исто, али искључујући датотеке са .bak: ack "test" --ignore-file=match:/.bak$/
  • Пронађи све датотеке у тренутној фасцикли које садрже стринг „hello“ и испиши прва 2 реда сваке датотеке: ack "hello" --heading --max-count=2

рипгреп

Други занимљив алат је ripgrep. Сличан је ack-у на много начина, али користи бржи алгоритам претраге, што га чини посебно корисним за велике пројекте.

Ево неколико примера:

  1. Пронађи све датотеке у тренутној фасцикли и њеним подфасциклама које садрже реч "test": rg "test"
  2. Исто, али искључујући датотеке са .bak: rg "test" --glob "!*.bak"
  3. Пронађи све датотеке у тренутној фасцикли које садрже стринг „hello“ и испиши прва 2 реда сваке датотеке: rg "hello" --heading --max-columns=2

Коначно, вреди поменути fzf. То није само претраживач низова као ack и ripgrep. Fzf се користи као услужни програм за претрагу датотека, фасцикли и ставки на листи. У супротном, ради као ack/ripgrep, али са додатном могућношћу филтрирања резултата уживо. Ево неколико примера:

  • Претражите датотеке које почињу са словом F на рачунару: locate F | fzf -m
  • Изађите из тренутне фасцикле и идите у жељени директоријум: cd **<TAB> | fzf
  • Изаберите SVN ревизије и копирајте број у међуспремник: svn log | fzf --reverse --ansi | awk '{print $1}' | pbcopy

Надамо се да ће вам ови алати помоћи да брзо и ефикасно пронађете датотеке и низове који су вам потребни. Који год да изаберете, сви они нуде напредну претрагу која може знатно убрзати ваш рад.

15% попуста на нови VPS
Наручите сервер на било којој локацији сада.
Изаберите VPS

Остали чланци

03.05.2023
5 701
База знања / Дистрибуције
Федора 25: Карактеристике, надоградња са Федоре 24
03.05.2023
26 533
База знања / Дистрибуције
Шта је Паррот Сецурити ОС и шта га чини посебним?
03.05.2023
40 321
База знања / Упутства - THE.Hosting
Упутства за додавање новог корисника у ОпенВПН