Generar Lista / Creat a List

alxreds

New Member
Joined
Dec 8, 2017
Messages
1
Reaction score
0
Credits
0
Buen dia
Tengo un problema al intentar generar una lista con la informacion en un archivo

Este es el archivo que tengo
10101506|Caballos|Equinos|Potrancas|Potras|Potrillos|Potros|Yeguas|||||||||||||||||
10101507|Ovejas|Borregos|Carneros|||||||||||||||||||||
10101508|Cabras|Borregos cimarrones|Cabritos|Cabros|Carnero de las Rocosas|Chivas|Chivatos|Chivos|Irascos|Machos cabríos|Chivos|||||||||||||
10101509|Asnos|Borricos|Burros|||||||||||||||||||||

y lo que necesito es una lista asi.
'10101506','Caballos'
'10101506', 'Equinos'
'10101506', 'Potrancas'
'10101506', 'Potras'
'10101506', 'Potrillos'
'10101506', 'Potros'
'10101506', 'Yeguas'

Si alguien tiene un Tip para esto
Gracias !!

Esto es lo que he intentado
A)
for a in alx.alx
do
F1=`awk -F '|' { print $1' $a }`
i=2
while [ $i -le 25 ]
do
F2=`awk -F '|' '{ print $i }' $a`
echo '$F1","$F2'
i=i+1
done
done

B)
for a in alx.alx
do
F1=$(awk -F '|' '{ print $1 }' $a)
for b in 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
do
F2=$(awk -F '|' '{ print $b }' $a)
echo $F1 "," $F2
done
done
Gracias!
 


Hey @alxreds

In english (EN:) and spanish (ES:)
en inglés (EN:) y español (ES:) (via Google)

EN: I don't understand much spanish, but I understand what you are trying to do. Try this:

ES: No entiendo mucho español, pero entiendo lo que estás tratando de hacer. Prueba esto:
Code:
awk -F '|' 'BEGIN{ORS="\n";} { for (i=2; i<NF; i++) if ($i != "") print $1," ",$i; print "\n"; }' file

OUTPUT / SALIDA:
Code:
10101506   Caballos
10101506   Equinos
10101506   Potrancas
10101506   Potras
10101506   Potrillos
10101506   Potros
10101506   Yeguas


10101507   Ovejas
10101507   Borregos
10101507   Carneros


10101508   Cabras
10101508   Borregos cimarrones
10101508   Cabritos
10101508   Cabros
10101508   Carnero de las Rocosas
10101508   Chivas
10101508   Chivatos
10101508   Chivos
10101508   Irascos
10101508   Machos cabríos
10101508   Chivos


10101509   Asnos
10101509   Borricos
10101509   Burros


Notes (EN:)
ORS and NF are special variables in awk.
ORS (Output Record Separator) - allows us to set a separator to use for each record we output. In this case we use a newline '\n'.

NF is the number of fields in the current line.
For each line in the file - the for loop in our awk command loops from the 2nd field to the last field (NF) and prints field 1 and field i if field i is not empty.

I hope this helps you!

Notas (ES:)
ORS y NF son variables especiales en awk.
ORS (separador de registros de salida): nos permite establecer un separador para usar para cada registro que generamos. En este caso usamos una nueva línea '\n'.

NF es el número de campos en la línea actual.
Para cada línea del archivo, el bucle for de nuestro comando awk realiza un bucle desde el segundo campo hasta el último campo (NF) e imprime el campo 1 y el campo i si el campo i no está vacío.

Espero que esto te ayude!
 

Members online


Top