#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