Tengo un archivo que tiene una línea en el archivo de la siguiente manera:Mover a seguir otra línea en un archivo
check=('78905905f5a4ed82160c327f3fd34cba')
me gustaría ser capaz de mover esta línea para seguir una línea que se ve así:
files=('somefile.txt')
La matriz aunque a veces que puede abarcar varias líneas, por ejemplo:
files=('somefile.txt'
'file2.png'
'another.txt'
'andanother...')
text
in between
check=('78905905f5a4ed82160c327f3fd34cba'
'5277a9164001a4276837b59dade26af2'
'3f8b60b6fbb993c18442b62ea661aa6b')
La matriz/línea alway s termina en a) y ningún texto intermedio contendrá un paréntesis cerrado.
me dieron algunos consejos que awk puede hacer esto:
awk '/files/{
f=0
print $0
for(i=1;i<=d;i++){ print a[i] }
g=0
delete a # remove array after found
next
}
/check/{ f=1; g=1 }
f{ a[++d]=$0 }
!g' file
Esto sólo tendrá una duración de una línea sin embargo. Me dijeron que expandir la búsqueda:
awk '/source/ && /\)$/{
f=0
print $0
for(i=1;i<=d;i++){ print a[i] }
g=0
delete a # remove array after found
next
}
/md5sum/ && /\)$/{ f=1; g=1 }
f{ a[++d]=$0 }
!g'
Acabo de aprender awk así que agradecería ayuda con esto. O si hay otra herramienta que puede hacer esto, me gustaría saberlo. Alguien me dijo que 'ed' este tipo de capacidades.
Aha, necesidad para mover las líneas hacia arriba y hacia abajo, ¿verdad? He revisado la respuesta a continuación ... – DigitalRoss