Linux/Unix Shell Scripting - ¿Como puedo pasarle a un script un fichero como parametro?

 
Vista:

¿Como puedo pasarle a un script un fichero como parametro?

Publicado por manololo01 (1 intervención) el 16/05/2017 13:00:03
Hola.
Tengo que hacer un script que cuente las palabras, letras y lineas de un fichero que se le pase como parámetro. El problema es que no sé cómo pasarle un fichero como parametro al script. 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
Imágen de perfil de [abZeroX]
Val: 101
Oro
Ha mantenido su posición en Linux/Unix Shell Scripting (en relación al último mes)
Gráfica de Linux/Unix Shell Scripting

¿Como puedo pasarle a un script un fichero como parametro?

Publicado por [abZeroX] (27 intervenciones) el 17/05/2017 05:55:06
Hola te comparto un sencillo script que capaz te sirva.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#!/bin/bash
 
if [ -z $1 ]; then
        echo '[ ERROR ] Debe indicar el nombre del fichero.'
elif [ ! -f $1 ]; then
        echo '[ ERROR ] El fichero indicado no existe.'
else
        # cantidad de letras
        caracteres=$(wc -c $1 | cut -d' ' -f1)
 
        # cantidad de letras, eliminado los espacios
        caracteres_sin_espacio=$(sed 's/ //g' $1 | wc -c $2 | cut -d' ' -f1)
 
        # cantidad de lineas
        lineas=$(wc -l $1 | cut -d' ' -f1)
 
        #cantidad de palabras
        palabras=$(wc -w $1 | cut -d' ' -f1)
 
        echo "CARACTERES: $caracteres"
        echo "CARACTERES (SIN EL ESPACIO): $caracteres_sin_espacio"
        echo "LINEAS: $lineas"
        echo "PALABRAS: $palabras"
fi

Para ejecutar solo tienes basta con hacer lo siguiente:
1
./script.sh nombre_fichero

En este caso nombre_fichero es el parámetro que se le pasa a script el cual se guarda en la variable $1.

PD: recuerda que debes darle permiso de ejecución al archivo
1
chmod +x script.sh

Nos Comentas.
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