Linux/Unix Shell Scripting - Convertir String del "cut" a Integer

 
Vista:

Convertir String del "cut" a Integer

Publicado por Asran (3 intervenciones) el 31/10/2005 17:45:26
Hola.
Vereis tengo que hacer un programa que me seleccione un campo de una linea de la salida del comando ps, concretamente el campo sz, que es el 10. Pues bien, tengo problemas con el comando cut para quedarme ese campo (que luego debo comparar con un párametro de entrada). Si hago cut -f10 me devuelve la linea entera, o sea, que no pilla nada, tengo que hacer cut -c36-40. Mi intención es hacer algo así:

ps -e -l | sort -k10 -n | tail -$1 | while read
do
b=`cut -c36-40`;
test $2 -gt b; echo $?

done

Pero no puedo pasarle b porque es un string y test espera un entero. Hay alguna manera de convertir ese b en entero?

Y ya puestos, sabeis como puedo guardar, dentro del bucle, la linea que esté leyendo read en ese momento para mostrarla según el resultado obtenido en test?

Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Convertir String del

Publicado por n0str0m0 (180 intervenciones) el 31/10/2005 19:48:42
Creo que el error viene porque en el test tienes:

test $2 -gt b; echo $? cuando deberías tener

test $2 -gt $b; echo $?
^------------------------- Para indicar que utilizas EL VALOR de la variable.

Por otro lado. En lugar de utilizar el cut, y separar por caracteres, te recomiendo (teniendo en cuenta que es el campo 10) que hagas un:

awk '{print $10}'

Esto funciona incluso aunque por el motivo que sea, la columna 9 por ejemplo, tiene un carácter de más o uno de menos.

Salu2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Convertir String del

Publicado por Asran (3 intervenciones) el 31/10/2005 20:14:31
Ok, gracias, probaré lo del awk.
Lo del $ ha sido un error al postearlo aquí, ya lo tenía puesto.
Voy a probarlo y luego cuento como ha ido.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Convertir String del

Publicado por Asran (3 intervenciones) el 31/10/2005 20:31:20
El awk me funciona bien, me selecciona el campo que quiero, pero a la hora de usarlo de esta forma con el test:

b=`awk '{print $10}'`
test $3 -gt $b; echo $?

o así:

test $3 -gt `awk '{print $10}'`; echo $?

Me dice que el test tiene demasiados argumentos, así que sigo sin poder comparar ese valor con el parámetro de entrada. Alguna solución?

Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Convertir String del

Publicado por n0str0m0 (180 intervenciones) el 01/11/2005 12:52:45
Yo he hecho un script de prueba:

b=`ps -aux|grep gnome-terminal|awk '{print $5}'`
if test $b -gt 5
then
echo es mayor
else
echo es menor
fi

Y esto funciona en un FreeBSD. Comprueba los valores de las variables, porque a lo mejor si estás metiendo mal un valor, al expandir

test $3 -gt $b queda algo como:

text 5 67 -gt 78

Por ese tipo de cosas es por lo que te podría decir que tiene demasiados argumentos.

Salu2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Convertir String del

Publicado por Migxel (1 intervención) el 21/06/2009 00:57:28
tengo la misma duda amigo, estoi haciendo un script para un trabajo y necesito convertir el resultado del comando 'wc -l $archivo|cut -d ' ' -f1` a entero y no encuentro como porfavor respondan como convertir cadenas a entero
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar