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)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.