Écrivez un script shell pour compter le nombre delignes, caractères, mots dans un fichier (sans utilisation de commandes). Supprimez également le mot «Linux» du fichier, où qu'il se trouve, et enregistrez les résultats dans un nouveau fichier.
Réponses:
1 pour la réponse № 1Ceci est le plus proche que je pourrais obtenir sans utiliser de paquets tiers ...
#!/bin/bash
count=0
while read -r line
do
count=$((count + 1))
done < "$filename"
echo "Number of lines: $count"
0 pour la réponse № 2
- Sachin Bharadwaj a donné un script qui compte les lignes.
- Maintenant, pour compter les mots, nous pouvons utiliser
set
scinder la ligne en$#
paramètres de position. - Et pour compter les caractères, nous pouvons utiliser le paramètre length:
${#line}
. - Enfin, pour supprimer tous les «Linux», nous pouvons utiliser la substitution de modèle:
${line//Linux}
.
(Cf. Expansion des paramètres de shell.)
Tous pris ensemble:
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"