GNU/Linux >> Tutoriales Linux >  >> Linux

¿Copiar encabezado en cada celda de su fila?

Tengo un archivo:

AC  AF  AN
3   0.375   8
3   0.375   8

Quiero la salida como:

AC  AF  AN
AC=3    AF=0.375    AN=8
AC=3    AF=0.375    AN=8

¿Hay algún comando de Unix para eso?

Respuesta aceptada:

awk '
  NR==1 {split($0,a); $1=$1} 
  NR>1 {for(i=1;i<=NF;i++) $i=a[i]"="$i} 
  1' OFS='t' yourfile

Explicación:

  • divide el primer registro (fila de encabezado) en una matriz, según el separador de campo predeterminado; reasignar $1 para que el registro se escriba con el nuevo separador de campo de salida
  • para los registros restantes, recorra los campos anteponiendo cada valor de campo con el elemento de matriz correspondiente al índice de campo, separados por =
  • imprimir registros con tabulador como separador de campo de salida

Linux
  1. ¿Cómo es que cada programa o servicio tiene una cuenta propia en /etc/passwd?

  2. Comando cp de linux

  3. Buscar y copiar archivos

  4. comando cut o awk para imprimir el primer campo de la primera fila

  5. Firefox:color del campo de entrada

Copiar archivos en Linux

Cómo copiar una base de datos MySQL

Comando Cp en Linux (Copiar archivos)

Kernel de Linux y sus funciones

Cómo copiar un directorio en Linux

comando cp en Linux/UNIX