/ / Imprimir la información del encabezado usando awk cada 20 líneas - linux, bash

Imprima la información del encabezado usando awk cada 20 líneas: linux, bash

Tengo un proyecto de big data que tiene miles deentradas. Los datos tienen aproximadamente 20 columnas que incluyen cilindros, consumo de gasolina, marca, modelo, etc. Estoy usando awk para generar todos los datos. Tengo que organizar los datos en una buena tabla.

Estoy usando un script como este:

#!/bin/bash

while read x
do
echo $x | awk -F "," " { print $1":"$2":"$4":"$7":"$8":"$10":"$11":"$12":"$22":"$24 } "
done

Habrá títulos de título donde están los dos puntos. Necesito repetirlas cada 20 líneas y debo tener un salto de línea después de la línea 20 y el encabezado. Además, la última línea debe mostrar el número de entradas.

Estoy atascado en las últimas 3 cosas que hacer.

Respuestas

2 para la respuesta № 1

No tiene sentido usar el while read bucle, y de hecho complica las cosas ya que dificulta la awk para mantener un recuento de los números de línea. Tratar:

awk -F, "NR % 20 == 1 { print "header columns" }
{ print $1,$2,$4,$7,$8,$10,$11,$12,$22,$24 }" OFS=: input-file