Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 22/10/2015, à 15:29

k3c

[Résolu] traduire du perl en Bash

Bonjour

Je cherche comment re_écrire en shell le mini script Perl suivant, qui affiche à la top le résultat de iostat

#!/usr/bin/perl

# Adjust options to taste.
open(IOSTAT, "iostat -x 5 |") || die;

$| = 1;
while(<IOSTAT>) {
    if (/^Dev/) { system "clear"; print; }
    if (/^sda/) { print; }
}

Merci

Dernière modification par k3c (Le 22/10/2015, à 18:24)


Debian 12 sur Thinkpad reconditionné

Hors ligne

#2 Le 22/10/2015, à 16:29

pingouinux

Re : [Résolu] traduire du perl en Bash

Bonjour,
Essaye ceci :

while read lig
do
   [[ $lig =~ ^Dev ]] && { clear; echo "$lig"; }
   [[ $lig =~ sda ]] && echo "$lig"
done < <(iostat -x 5)

Hors ligne

#3 Le 22/10/2015, à 16:50

k3c

Re : [Résolu] traduire du perl en Bash

Merci Pingouinux, cela marche parfaitement

Pourquoi

done < <(iostat -x 5)

et pas un seul < ?


Debian 12 sur Thinkpad reconditionné

Hors ligne

#4 Le 22/10/2015, à 17:32

pingouinux

Re : [Résolu] traduire du perl en Bash

command_1 < <(command_2)

L'entrée standard de command_1 va être la sortie standard de command_2.

On aurait aussi pu faire ainsi

iostat -x 5 | while read lig
do
   [[ $lig =~ ^Dev ]] && { clear; echo "$lig"; }
   [[ $lig =~ sda ]] && echo "$lig"
done

Hors ligne

#5 Le 22/10/2015, à 18:23

k3c

Re : [Résolu] traduire du perl en Bash

C'est limpide, merci


Debian 12 sur Thinkpad reconditionné

Hors ligne

#6 Le 23/10/2015, à 08:05

credenhill

Re : [Résolu] traduire du perl en Bash

hello

$ iostat -x 5 | awk '/^Dev/ {system("clear")} /^sda|^Dev/'

Hors ligne