Consegui me fotografar onde dói (muito ruim) reformatando uma partição que continha dados valiosos. Claro que não foi intencional, mas aconteceu.
No entanto, eu consegui usar testdisk
e photorec
recuperar a maioria dos dados. Então agora eu tenho todos esses dados distribuídos em quase 25.000 diretórios. A maioria dos arquivos são arquivos .txt, enquanto os demais são arquivos de imagem. Existem mais de 300 arquivos .txt em cada diretório.
Eu posso grep
ou uso find
para extrair determinadas seqüências de caracteres dos arquivos .txt e enviá-las para um arquivo. Por exemplo, aqui está uma linha que eu usei para verificar se meus dados estão nos arquivos recuperados:
find ./recup*/ -name '*.txt' -print | xargs grep -i "searchPattern"
Eu posso gerar "searchPattern" para um arquivo, mas isso me dá esse padrão. Aqui está o que eu realmente gostaria de realizar:
Percorra todos os arquivos e procure por uma sequência específica. Se essa sequência for encontrada em um arquivo, coloque TODO o conteúdo desse arquivo em um arquivo de saída. Se o padrão for encontrado em mais de um arquivo, anexe o conteúdo dos arquivos subseqüentes ao arquivo de saída. Observe que eu simplesmente não quero exibir o padrão que estou procurando, mas TODO o conteúdo do arquivo no qual os padrões são encontrados.
Eu acho que isso é possível, mas simplesmente não sei como capturar todo o conteúdo de um arquivo depois de receber um padrão específico dele.