Concatenar el encabezado de un archivo con la cola de otro

0

Tengo un archivo mysqldump gzipped grande que contiene algunas definiciones de tabla y luego muchas declaraciones de inserción. Me gustaría editar las definiciones de la tabla pero dejar las instrucciones de inserción solo. El archivo tiene aproximadamente 500 gb cuando está comprimido, así que me gustaría evitar descomprimirlo solo para editarlo. Para omitir el encabezado podría hacer

zcat bigfile.gz | tail -n+50

Y solo para agregar el encabezado a otro archivo comprimido que puedo hacer

zcat header.gz bigfile.gz

Pero, ¿hay alguna manera de combinar estas dos declaraciones?

noisecapella
fuente

Respuestas:

2

Usted podría usar proceso de sustitución , que es más idiomático y menos engorroso que una canalización con nombre.

cat header.sql <(zcat bigfile.gz | tail -n+50)
themiurgo
fuente
0

Terminé usando una tubería con nombre para resolver este problema y tres shells (a través de tmux):

Primero,

mkfifo pipe

Iniciar shell 1:

cat header.sql > pipe

A continuación, inicie shell 2:

zcat bigfile.gz | tail -n+50 > pipe

Entonces comienza el shell 3

cat pipe | mysql -uroot -pxyz database_name
noisecapella
fuente