[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Comando awk



El día 28 de septiembre de 2011 11:45, rantis cares
<rantiscares@gmail.com> escribió:
> El día 28 de septiembre de 2011 02:42, Marc Olive
> <marc.olive@blauadvisors.com> escribió:
>> On Tuesday 27 September 2011 06:59:01 Pablo Jiménez wrote:
>>
>>> >>> Y todo bastante bien, pero ahora quiero que la columna de dato1 me sea
>>> >>> mostrado uno por uno y ejecute cierta accion (con otro comando). Para
>>> >>> ello ejecuto la siguiente linea de ordenes
>>
>>> >>> Alguna idea?.
>>> >>
>>> >> cat está demás. Basta y sobra con awk.
>>> >
>>> >¿Esta demas?. cat lo que hace es mostrar linea por linea, si yo
>>
>> No, "cat" lo que hace es concatenar archivos y mostrarlos por la salida, si
>> solo hay un archivo de entrada, entonces el contenido de ese único archivo va
>> a la salida. Lo de "linea por linea" no se de dónde lo has sacado, pero NO es
>> verdad.
>
> Este proceso ya lo habia hecho anteriormente, y efectivamente cat
> concatena y/o unicamente muestra todo el archivo. En otros scripts que
> he realizado con el "for i" combinado es como si lo hiciera "uno por
> uno".
>
> Tienes toda la razon en lo que comentas.
>
>> Yo haria algo como:
>>
>> awk '{print $1}' tirar.txt | while read lin; do
>>    echo "$lin"
>>   cierta_accion || echo "No se puede ejecutar la orden"
>> done

He estado haciendo pruebas con esta manera de hacer las cosas, pero
ahora surge mi duda con esta respuesta.

Efectivamente me muestra la primera linea, pero si ahora quiero que me
muestre las tres columnas simplemente modifico como sigue:

awk '{print $1,$2,$3}' tirar.txt | while read lin; do
   echo "$lin"
   cierta_accion || echo "No se puede ejecutar la orden"
 done

Sin embargo surge el problema de que las tres columnas las muestra
como una sola salida, pero me gustaria que las mostrara como una
salida de manera independiente, por ejemplo

dato1 dato2 dato3 (archivo tirar.txt)

awk '{print $1,$2,$3}' tirar.txt | while read lin; do
   echo "$lin"

   echo "imprime $1"
   echo "imprime $2"
   echo "imprime $3"


   cierta_accion || echo "No se puede ejecutar la orden"
 done

>
> Siempre me sorprendo de la sencillez con la que las cosas se pueden
> hacer. Sinceramente un dia llegare a la capacidad de alguno de
> ustedes.
>
> Gracias
>
>>
>>
>> --
>>
>> Marc Olivé
>> Blau Advisors
>>
>> marc.olive@blauadvisors.com
>>
>> C/ Molí de Guasch, 10 baixos 1a,
>> 43440 L’Espluga de Francolí (Tarragona)
>> Tel. +34 977 870 702
>> Tel i Fax. + 34 977 870 507
>>
>> www.blauadvisors.com
>>
>>
>> --
>> To UNSUBSCRIBE, email to debian-user-spanish-REQUEST@lists.debian.org
>> with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
>> Archive: http://lists.debian.org/201109280942.15699.marc.olive@blauadvisors.com
>>
>>
>
>
>
> --
> "Al juntarme dia tras dia con los Listeros, mi capacidad intelectual
> crece en proporcion inversa a la ignorancia generada. Gracias
> Linuxeros"
>



-- 
"Al juntarme dia tras dia con los Listeros, mi capacidad intelectual
crece en proporcion inversa a la ignorancia generada. Gracias
Linuxeros"


Reply to: