Escribe un script de shell para contar el número delíneas, caracteres, palabras en un archivo (sin el uso de comandos). También elimine la aparición de la palabra "Linux" del archivo donde aparezca y guarde los resultados en un nuevo archivo.
Respuestas
1 para la respuesta № 1Este es el más cercano que podría obtener sin usar paquetes de terceros ...
#!/bin/bash
count=0
while read -r line
do
count=$((count + 1))
done < "$filename"
echo "Number of lines: $count"
0 para la respuesta № 2
- Sachin Bharadwaj dio un guión que cuenta las líneas.
- Ahora, para contar las palabras, podemos usar
set
para dividir la linea en$#
Parámetros posicionales. - Y para contar los caracteres, podemos usar la longitud del parámetro:
${#line}
. - Finalmente, para eliminar cada "Linux", podemos usar la sustitución de patrones:
${line//Linux}
.
(Cf. Expansión de parámetros de shell.)
Todos tomados juntos:
while read -r line
do
((++count))
set -- $line
((wordcount+=$#))
((charcount+=${#line}+1)) # +1 for the "n"
echo "${line//Linux}"
done < "$filename" >anewfile
echo "Number of lines: $count"
echo "Number of words: $wordcount"
echo "Number of chars: $charcount"