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
Generar Lista con Informacion en Renglon
Re: Generar Lista con Informacion en Renglon
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.
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:
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 ","}';
Ya la parte de un bucle for y leer línea a línea veo que la entiendes.
Resultado:
'10101506','Caballos',
Re: Generar Lista con Informacion en Renglon
#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 !!
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 !!
-
- Temas similares
- Respuestas
- Vistas
- Último mensaje
-
- 3 Respuestas
- 901 Vistas
-
Último mensaje por doc
-
- 2 Respuestas
- 831 Vistas
-
Último mensaje por Skarvk
-
- 1 Respuestas
- 776 Vistas
-
Último mensaje por hmg79
-
- 23 Respuestas
- 11665 Vistas
-
Último mensaje por CharlieBros
-
- 12 Respuestas
- 7090 Vistas
-
Último mensaje por niky45