Me las arreglé para pegarme un tiro donde duele (realmente mal) reformateando una partición que contenía datos valiosos. Por supuesto que no fue intencional, pero sucedió.
Sin embargo, logré usar testdisk
y photorec
recuperar la mayoría de los datos. Así que ahora tengo todos esos datos distribuidos en casi 25,000 directorios. La mayoría de los archivos son archivos .txt, mientras que el resto son archivos de imagen. Hay más de 300 archivos .txt en cada directorio.
Puedo grep
o uso find
extraer ciertas cadenas de los archivos .txt y enviarlas a un archivo. Por ejemplo, aquí hay una línea que he usado para verificar que mis datos están en los archivos recuperados:
find ./recup*/ -name '*.txt' -print | xargs grep -i "searchPattern"
Puedo enviar "searchPattern" a un archivo, pero eso solo me da ese patrón. Esto es lo que realmente me gustaría lograr:
Revisa todos los archivos y busca una cadena específica. Si esa cadena se encuentra en un archivo, cat TODOS los contenidos de ese archivo en un archivo de salida. Si el patrón se encuentra en más de un archivo, agregue el contenido de los archivos posteriores a ese archivo de salida. Tenga en cuenta que simplemente no quiero generar el patrón que estoy buscando, sino TODOS los contenidos del archivo en el que se encuentran los patrones.
Creo que esto es factible, pero simplemente no sé cómo tomar todo el contenido de un archivo después de extraer un patrón específico de él.