= bubbalog =Дневникът на моето стадо

Търсене на низ (string) в неограничен брой файлове

Friday 02.01.2009 01:13 EEST · Публикувано от в = FreeBSD =

Винаги ме е тормозел въпро: “Как да намеря нещо написано в някой файл?”. Отговора е лесен, директно в Windows има търсачка, която прави и това. Но както винаги има едно “НО” – тя незнам защо търси само в .txt файловете, бежеби и в някой други от сорта на .doc, .rtf и прочее, но специфични формати не отваря… Да не говорим, че ако се наложи да дириш нещо, което е на *NIX сървър става още по интересно…

Като цяло въпроса адски много наболя откакво започнах да се занимавам с WordPress. Вярно, самия той е преведен перфектно, но темите и плъгините… Ах, за жалост те не са. Четох някъде за теми преведени на роден език, прегледах някои, но определено нито една не можа да ми грабне окото, да не казвам даже и по-солни думи, но айде няма да го правя от уважение към старанието и труда на хората, който е много както разбрах с течение на времето. Та – заех се аз с превеждането на една темичка (с която съм в момента) по стария добре познат маймунски начин – на проба/грешка, като тактиата се прилага и при някои плъгини. Но как подяволите да редактираш плъгин? Айде, за темата е лесно, има редактор на теми в самата система, ама за плъгин – не, освен за самия основен файл. Но за съпътстващите го няма… И започва едно еистово и брачно търсене на някой стринг по един милион файлове, което само по себеси не толкова тежка работа, колкото еднообразна, монотонна и дъга, а тогава варианта за гршка е най-огромен.

Решенията при мен могат да бъдат сведени до 2 варианта. Директно търсене през FreeBSD-то или използване на една малка килобайтова програмка която да търси прес Windows на монтираните дискове от сървъра – както вече споменах в една предишна статия – много полезно нещо е това SAMBA-та, много помага и спестява много главоболия.

При първия вариант за директното търсене се използва командата find с подходящи параметри към нея:

#find /път/към/файловете -name ‘*.*’ -print | xargs grep -il ‘низ за търсене’

Самия разбор е следния:

  • Оказва се пътя към файловете в които да се търси. При търсенето се проверяват и субдиректориите. Ако искате да се проверява само в определена директория – преминете в нея и заменете пътя за търсене с точка (.)
  • Оказва се с кои файлове да се търси
  • Оказва се какво точно да се търси, като аргументите -i и -l към grep значат съответно стринга за търсене да не се влияе от главни/редовни букви и да се покажат файловете съдържащи стринга само като пътища, без самото съдържание

Втория вариант за търсене е както казах през Windows като се използва една няколкостотин килобайтова програмка – Search & Replace Master (http://knowlesys.com/software/search-and-replace-master/)- която сама по себе си прави всичко което прави и горния пример, само дето е в графичен юзърски режим. Просто инсталирайте и разгледайте – всичко е пределно ясно и просто.

Остави коментар

Писането на кирилица е задължително!
Коментари, които не са на кирилица ще бъдат изтрити без предупреждение.
Всеки коментари съдържащи 1 или повече линка, ще бъдат публикувани след одобрение.