En vrac (22)
Niveau :
Résumé :
Ces commandes sont dans le paquet moreutils sur debian.
Ajouter un timestamp sur chaque ligne pour lire une commande un peu lente :
$ ./commande | ts | tail
Éditer en masse les entrées d’un répertoire (pour renommer des images par exemple) :
# Tout le répertoire $ vidir repertoire # Seulement les images $ vidir *.jpg
Retourner le code d’erreur du premier élément d’un pipe et non du dernier (très utile en scripting) :
# Retourne une erreur si $dir n'existe pas $ mispipe "ls $dir" "tail"
Vérifier qu’un fichier utf8 est valide :
$ isutf8 fichier && echo OK || echo "Not OK"
Ne pas écraser un fichier de destination avant la fin de la commande :
# Version fonctionnelle de cat a b > a $ cat a b | sponge a
Créer un script de type cron avec un lock sans effort :
$ lckdo -W 10 /var/lock/mylock /usr/local/bin/myscript
Éditer le contenu d’un pipe (très pratique pour le debug de script) :
$ commande1 | vipe | commande2
Éviter les envois de mail de rapport lorsqu’il n’y a rien à rapporter :
$ /usr/local/bin/rapport.pl | ifne mail -s "Synchro en retard" sysadmins@mynnet.net
Permettre (optionnelle ment) de passer des fichiers compressés en argument à un script (comme pour zless) :
# Recoder zless $ zrun less $1
Éviter de parser le résultat de ifconfig ou de ip dans un script (nombreuses options, de sortie, lire le man) :
# Afficher le nombre d'octets reçus $ ifdata -sib eth0
Passer le résultat d’une commande à plusieurs autres
# Attention si commande1 et commande2 produit du texte, rien ne garantit leur ordre $ commande | pee "commande1" "commande2"
Comparer ligne par ligne deux fichiers avec des opérateurs plus évolués que comm :
$ combine fichier1 xor fichier2