vineri, 28 octombrie 2011

Nu va gasiti cuvintele ? Nimic mai simplu.

De multe ori cautam o expresie continuta intr-un fisier dar nu ne mai aducem aminte numele fisierului. Ori pur si simplu ne apare o eroare datorata unei expresii si vrem sa aflam care fisier contine acea expresie. Pentru asta utilizam scriptul de mai jos.


#!/bin/bash
Red='\E[31m'
reset='\E[0m'
echo -e "${Red}Expresia cautata ${reset}"
read expresia
echo -e "${Red}Folderul in care caut ${reset}"
read folder
# sterg ultimul slash - daca exista
folder=${folder%/}
# verific daca directorul exista
if [ ! -d "$folder" ]; then
echo -e "${Red}Folderul $folder nu exista${reset}"
exit 1
fi
grep -r -n --color=always "$expresia" "$folder"/*
exit 0


Cum facem. Copiati continutul acestui script intr-un fisier numit cauta, il puneti pe server/desktop intr-un folder (de exemplu /home) , il faceti executabil cu comanda

sudo chmod +x /home/cauta
si il puteti lansa cu comanda /home/cauta.
Puteti sa lasati fisierul acolo unde l-ati creat (in /home) sau puteti sa-l mutati in directorul /bin. Probabil stiti ca mutand un fisier executabil in directorul /bin, transformam acel fisier intr-o comanda. Asta inseamna ca pentru a executa fisierul nu mai trebuie sa-i tastam si calea catre el (ex: /home/cauta) ci numai numele cauta ca in imaginea de mai jos unde caut fisierul care contine Alias /error/include/.
Asadar lansez fisierul cauta din terminal cu comanda
root@server:~# cauta
sunt intrebat care este expresia cautata si raspund cu
Alias /error/include/
apoi la intrebarea "Folderul in care caut" raspund cu 
/etc/apache2
Imi apar acum rezultatele cautarii astfel:
/etc/apache2/conf.d/localized-error-pages:22:#   Alias /error/include/ "/your/include/path/"
unde :
/etc/apache2/conf.d/localized-error-pages este numele fisierului si calea catre el 
:22 reprezinta linia din fisier unde expresia cautata a fost gasita 
Alias /error/include/ "/your/include/path/" reprezinta linia in care expresia a fost gasita.

Simplu. Cu cateva linii de cod avem o comanda rapida de cautare. Si eficienta.

Spor la cautat cuvinte.

Niciun comentariu: