agregar líneas después de otros archivos línea por línea

agregar líneas después de otros archivos línea por línea

Agregar un archivo,

011C0201.WAV
011C0202.WAV
011C0203.WAV
011C0204.WAV
011C0205.WAV

Después de otro archivo,

52 601
39 608
56 1016
39 416
65 335

el resultado es el siguiente, también dividir por tabulación

011C0201.WAV    52_601_011C0201
011C0202.WAV    39_608_011C0202
011C0203.WAV    56_1016_011C0203
011C0204.WAV    39_416_011C0204
011C0205.WAV    65_335_011C0205

Esto es lo que hago

awk '
NR==FNR { start=$1; end=$2; next}
{ print $0 start end }
' WSJ_310P_PC_16k.epd WSJ_310P_PC_16k.spt > tmp

Pero no está funcionando. ¿Qué estoy haciendo mal?

Respuesta1

¿Qué tal paste+ awk?

$ paste one another | 
    awk '{print $1, $2 "_" $3 "_" substr($1,1,length($1)-4)}' OFS='\t'
011C0201.WAV    52_601_011C0201
011C0202.WAV    39_608_011C0202
011C0203.WAV    56_1016_011C0203
011C0204.WAV    39_416_011C0204
011C0205.WAV    65_335_011C0205

Si prefieres hacerlo íntegramente en awk:

awk 'NR==FNR {a[FNR]=$0; next} {print a[FNR], $1 "_" $2 "_" substr(a[FNR],1,length(a[FNR])-4)}' OFS='\t' one another

Respuesta2

Aquí hay uno que usa puroawk

awk '
    NR==FNR {a[NR]=$0; next}
    {
        split(a[FNR],b,".");
        printf "%s\t%s_%s_%s\n", a[FNR], $1, $2, b[1]
    }
' file1 file2

información relacionada