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" fiConsidere 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.