Foros del Web » Administración de Sistemas » Unix / Linux »

duda shell bash

Estas en el tema de duda shell bash en el foro de Unix / Linux en Foros del Web. Busca fichero_buscado.txt y muestra las 2 primeras columnas de ls -alis: ls -alis | awk '$10 == "fichero_buscado.txt" {print $1" "$2 }' FS=" " Pero ...
  #1 (permalink)  
Antiguo 01/04/2013, 17:30
 
Fecha de Ingreso: abril-2013
Mensajes: 4
Antigüedad: 11 años, 8 meses
Puntos: 1
duda shell bash

Busca fichero_buscado.txt y muestra las 2 primeras columnas de ls -alis:
ls -alis | awk '$10 == "fichero_buscado.txt" {print $1" "$2 }' FS=" "

Pero si intento utilizar una variable (en este caso un parámetro de entrada) no funciona:
var=$1
(el problema está en la siguente instrucción)
ls -alis | awk '$10 == '"$var"' {print $1" "$2 }' FS=" "

Y un poco de explicación de porqué no funciona si es posible.
  #2 (permalink)  
Antiguo 02/04/2013, 04:51
 
Fecha de Ingreso: abril-2013
Ubicación: Barcelona
Mensajes: 78
Antigüedad: 11 años, 8 meses
Puntos: 2
Respuesta: duda shell bash

No es que entienda mucho del tema pero prueba esto:

var="fichero_buscado.txt"
ls -alis | awk '$10 == $var {print $1" "$2 }' FS=" "
  #3 (permalink)  
Antiguo 02/04/2013, 06:59
 
Fecha de Ingreso: abril-2013
Mensajes: 4
Antigüedad: 11 años, 8 meses
Puntos: 1
Respuesta: duda shell bash

No, pero gracias por el interés.
Te voto positivo.
  #4 (permalink)  
Antiguo 02/04/2013, 15:09
 
Fecha de Ingreso: abril-2013
Mensajes: 4
Antigüedad: 11 años, 8 meses
Puntos: 1
Respuesta: duda shell bash

Una última duda, creo que esta bastante simple.

var=$(ls -alisR)
como puedo preguntar si este comando devuelve algo, sería algo así: (pero que funcione xD)
if [ "$var" != "" ]
then
...
fi

Gracias a todos :)
  #5 (permalink)  
Antiguo 02/04/2013, 16:39
 
Fecha de Ingreso: enero-2008
Mensajes: 614
Antigüedad: 16 años, 11 meses
Puntos: 57
Respuesta: duda shell bash

El codigo esta casi bien, solo le falta punto y coma despues del corchete
if [ "$var" != "" ]; then
echo "no esta vacio"
fi

utiliza help if para obtener la sintaxis
  #6 (permalink)  
Antiguo 03/04/2013, 09:14
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: duda shell bash

¿y por qué no esto?
Código BASH:
Ver original
  1. ls -alis fichero_buscado.txt |awk '{print $1 $2}'

En cualquier caso, el problema es que dentro del programa awk (lo que está dentro de las comillas) no se pueden usar variables de la shell. Hay varias alternativas posibles:

- Utilizar el modificador -v de AWK, que permite definir variables para el programa AWK:
Código BASH:
Ver original
  1. awk -vVAR_AWK=$VAR '{ print VAR_AWK }'

- interpolar la variable en el programa, de forma ligeramente diferente:
Código BASH:
Ver original
  1. awk '{ print "'"$mi_var_de_shell"'" }'

La primera es la recomendable, por claridad.


Saludos.
  #7 (permalink)  
Antiguo 03/04/2013, 14:25
 
Fecha de Ingreso: abril-2013
Mensajes: 4
Antigüedad: 11 años, 8 meses
Puntos: 1
Respuesta: duda shell bash

Gracias crack.

La primera opción no es exactamente lo que quiero porqué la cadena busacada puede coincidir con cualquier parte del ls, no sólo del nombre (aunque es lo más probable claro).

Etiquetas: bash, shell
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:38.