Necesito verificar si la cadena M1039C28
está dentro de algún archivo del directorio /var/opt
.
Debe hacer eco true
si se encuentra la cadena o repetir String not found
si no se encuentra la cadena.
Muestra:
cd /var/opt/; if [ find ./ -type f -exec grep -Hni "M1039C28" {} ';'] then echo "String found" else INFO "String not found" fi
Considere usar grep
con las opciones -q
(suprimir cualquier salida) y -r
(búsqueda recursiva en un directorio):
grep -qr "search-query" /path/to/dir && echo "FOUND" || echo "NOT FOUND"
grep
saldrá con el código 1
si no pudo encontrar la cadena en ningún archivo. Para obtener más información, consulte la página del manual
¿Por qué no basas tu script en este comando?
grep -l "M1039C28" * | wc -l
Si el resultado es 0, entonces no se encuentra la entrada.
Si el resultado es 1 o más, se encuentra la entrada.
Si tiene un directorio grande y desea buscar recursivamente, intente usar el buscador plateado si aún no está instalado, puede hacerlo con Debian sudo apt install silversearcher-ag
o brew install the_silver_searcher
en MacOS. Úsalo así.
ag "M1039C28" path/to/search && echo "FOUND" || echo "NOT FOUND"
El argumento de la ruta de la nota es opcional, por defecto busca la ruta actual de forma recursiva.