Generar Lista con Informacion en Renglon

Temas sobre programación ( php, c, sql, html, perl, python, ruby, java, bash, etc ) y recursos ( herramientas, frameworks, hosting, cms, etc )

Moderadores: maiku, akodo

Responder
alxreds
Forista Nuevo
Forista Nuevo
Mensajes: 2
Registrado: Vie Dic 08, 2017 7:23 pm

Generar Lista con Informacion en Renglon

Mensaje por alxreds »

Buen dia
Tengo un problema al intentar generar una lista con la informacion en un archivo

Este es el Renglon 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 !!

Editado -- Vie Dic 08, 2017 2:00 pm --

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

Avatar de Usuario
neurus
Forista Legendario
Forista Legendario
Mensajes: 1818
Registrado: Dom Oct 10, 2004 7:00 am

Re: Generar Lista con Informacion en Renglon

Mensaje por neurus »

Vamos a suponerlo con un renglón, que está dentro del archivo renglon.txt
El problema que te presenta awk, es que la comilla simple es parte de la sentencia, por lo que debes hacer que awk la interprete de otra forma. Por ejemplo, como texto de una variable.

Código: Seleccionar todo

echo $renglon.txt |awk -v c="'" -F "|" '{print c $1 c ","c $2 c ","}';
Donde la variable c, contiene la comilla simple. Supongo que atrapas la idea.
Ya la parte de un bucle for y leer línea a línea veo que la entiendes.

Resultado:
'10101506','Caballos',

alxreds
Forista Nuevo
Forista Nuevo
Mensajes: 2
Registrado: Vie Dic 08, 2017 7:23 pm

Re: Generar Lista con Informacion en Renglon

Mensaje por alxreds »

#intente con esto

awk '{n=split($0,a,"|");
for (j=2;j<=n;j++)
if (a[j]) print a[1],a[j]}' \
$InFile >$OutFile

#y el resultado fue el esperado
10101506 Caballos
10101506 Equinos
10101506 Potrancas
10101506 Potras
10101506 Potrillos
10101506 Potros
10101506 Yeguas
Gracias !!

Responder
  • Temas similares
    Respuestas
    Vistas
    Último mensaje