PDA

View Full Version : [Comandi] Non riesco a trovare il comando x cercare in 1 file 1 stringa. :(


Matrixbob
22-11-2006, 10:31
Ad esempio se voglio cercare in 1 serie di file.c dove cavolo è la funziona "pinco pallino".
Scusate se ve lo chiedo così brutalmente al brucio. :stordita:

ilsensine
22-11-2006, 10:43
Io uso questo script:

#!/bin/bash
FILTER=".*\.\(c\|h\|s\|S\|cpp\)"
if [ "$1" = "" ]; then
echo $0 \<string\>
exit
fi
find . \( -path './*' \) \
-regex "${FILTER}" -exec grep -l -- "$*" {} \; 2>/dev/null

Cerca ricorsivamente, a partire dalla directory corrente, i file che contengono la stringa indicata.

eclissi83
22-11-2006, 10:45
Ad esempio se voglio cercare in 1 serie di file.c dove cavolo è la funziona "pinco pallino".
Scusate se ve lo chiedo così brutalmente al brucio. :stordita:
ipotizzando di dover cercare la funzione "antani" in una dir dove ci sono dei file c, fai cosi':
ti sposti nella dir dei sorgenti e lanci il comando
grep -i -R antani *

dove -i cerca tutte le occorrenze sia maiuscole che minuscole, mentre -R cerca in modo ricorsivo nelle dir a partire da quella dove stai.

man grep ti puo' aiutare...

ciao

edit: lo scriptino di ilsensine e' molto piu' efficiente del comando che ti ho suggerito io.

Matrixbob
22-11-2006, 10:50
Io uso questo script:

#!/bin/bash
FILTER=".*\.\(c\|h\|s\|S\|cpp\)"
if [ "$1" = "" ]; then
echo $0 \<string\>
exit
fi
find . \( -path './*' \) \
-regex "${FILTER}" -exec grep -l -- "$*" {} \; 2>/dev/null

Cerca ricorsivamente, a partire dalla directory corrente, i file che contengono la stringa indicata.
Sono newbbo della programmazione, questo è 1 famoso bash script?!
Come si usa? Dicendo il nome dello script?!
Devo metterlo in qualche directori e aggiungere in qualche file il path ad esso?!

ilsensine
22-11-2006, 11:31
Sono newbbo della programmazione, questo è 1 famoso bash script?!
Come si usa? Dicendo il nome dello script?!
Devo metterlo in qualche directori e aggiungere in qualche file il path ad esso?!
Crei un file (diciamo search.sh) e ci fai copia & incolla di quelle righe; lo rendi eseguibile (chmod +x search.sh) e lo sposti nel path (ad es. sotto /usr/bin). Quindi basta che lo esegui come serach.sh "stringa da cercare" dalla directory che ti interessa.

Oppure se ti piaccino i programmi grafici, puoi usare kfind.

Matrixbob
22-11-2006, 12:12
Crei un file (diciamo search.sh) e ci fai copia & incolla di quelle righe; lo rendi eseguibile (chmod +x search.sh) e lo sposti nel path (ad es. sotto /usr/bin). Quindi basta che lo esegui come serach.sh "stringa da cercare" dalla directory che ti interessa.
allora si chiamano bash script questi fatti così?!
Che linguaggio è?!

La "/usr/bin" è come la "system32" di Win?!

ilsensine
22-11-2006, 12:26
allora si chiamano bash script questi fatti così?!
Sì è un semplice script per bash
Che linguaggio è?!
bash

La "/usr/bin" è come la "system32" di Win?!
Non proprio; la system32 di Windows contiene anche librerie; sotto linux le librerie stanno altrove (/usr/lib)