Comparer les tailles de fichier de script shell
Je suis en train de comparer la taille des deux fichiers en script shell, mais je suis un test: 32: 8: opérateur inattendu erreur.
I=`wc -c $i | cut -d' ' -f1`
J=`wc -c $j | cut -d' ' -f1`
if test $I == $J
then
echo $i $j >> $1.pares
fi
Je teste les valeurs dans $I et $J à l'aide de l'écho et les valeurs sont correctes, mais je ne peux pas comparer...
IIRC,
==
est un bash extension et est utilisé dans bash expressions numériques: (( $I == $J ))
OriginalL'auteur Tiago Costa | 2011-11-12
Vous devez vous connecter pour publier un commentaire.
Essayez d'utiliser des crochets (
[]
) et-eq
comme suit:Essayez
-eq
au lieu de==
:if [ $I -eq $J ]; then...
J'ai juste essayé de = au lieu de == et il a travaillé, et -eq également travaillé
Fixe, content que tu ai eu de travail!
OriginalL'auteur chown
cela fonctionne sur bash
stat: illegal option -- c usage: stat [-FlLnqrsx] [-f format] [-t timefmt] [file ...]
si je ne me trompe pas, changez -c -f, le problème est que sur linux -f --système de fichiers. N'hésitez pas à ajouter un mac alternative après vous faites ce travail, par l'édition de ma réponse si vous préférez 🙂
OriginalL'auteur Aquarius Power
Essayer
Toujours citer les variables, parce que vous pouvez avoir un nom de fichier contenant un espace.
Malgré BASH est insensible à la casse avec les noms de variable, il est préférable et plus sûr à utiliser différents (et plus d'un char) nom des variables.
cat foobar | wc -c
, car il vous permettra de lire l'intégralité du fichier à partir du disque (ou à partir d'un emplacement distant, ou à partir de la mesure). C'est juste une perte de temps pour les gros fichiers. Préférez l'utilisation dewc -c foobar
.Ouais, c'est vrai 🙂 je le sais maintenant, mais na pas savoir ce que quand j'écris la réponse. Vais le corriger
OriginalL'auteur bartimar
Quelque chose comme cela pourrait fonctionner....
Câlins!
OriginalL'auteur Artur Forte