extraiga líneas de un archivo de texto, el patrón se identificará analizando el archivo

extraiga líneas de un archivo de texto, el patrón se identificará analizando el archivo

Es necesario extraer líneas de un archivo txt a otros archivos, según el siguiente escenario:

El primer patrón a comparar será siempre la línea que comienza con la palabra identifier, luego el segundo patrón será la primera línea, que comienza con 000:

en el siguiente ejemplo, será

000: thislineneedstobeextracted  

Después de haber escrito la salida en el primer archivo, pasamos a extraer las líneas que comienzan con la palabra identifiery las líneas que comienzan nuevamente con 000: pero esta vez, para la segunda aparición única encontrada en el archivo, en nuestro ejemplo,

000: alsothislineneedstobeextracted  

y la salida se escribirá en el segundo archivo, etc.

entrada de muestra

identifier 767  
linetobeignored  
anotherlinetobeignored  
000: thislineneedstobeextracted  
000: alsothislineneedstobeextracted  
blankline  
identifier 7686    
linetobeignored  
anotherlinetobeignored  
000: thislineneedstobeextracted  
000: alsothislineneedstobeextracted  
000: ayetanotherlineneedstobeextracted  

archivo de salida de muestra 1.txt:

000: thislineneedstobeextracted  
identifier 767  
identifier 7686    

archivo de salida de muestra 2.txt:

000: alsothislineneedstobeextracted  
identifier 767  
identifier 7686    

Respuesta1

Pruebe conawk

awk '
    /^id/{
        if(line[1]){
            for(n in line)print line[n],i,$0 >> "file"n".txt"
            delete(line)
            }
        c=0
        i=$0
        }
    /^000:/{
        line[++c]=$0
        }
    END{
        if(line[1]){
            for(n in line)print line[n],i,$0 >> "file"n".txt"
        }
    ' OFS=\\n txt.file

información relacionada