#1 Le 06/04/2021, à 08:04
- Tamarou

[Résolu] Quel est le séparateur dans cette ligne ?
Bonjour,
Je voudrais sélectionner un champ de la réponse obtenue par la commande
df ~ | grep /devpour obtenir le pourcentage d'utilisation.
Mais je ne sais pas comment trouver le type de séparateur qui est utilisé par l'affichage et l'indiquer à
cut -d? -fxPouvez-vous m'indiquer une piste ?
Dernière modification par Tamarou (Le 15/04/2021, à 08:37)
En ligne
#2 Le 06/04/2021, à 08:18
- pingouinux

Re : [Résolu] Quel est le séparateur dans cette ligne ?
Bonjour,
Le séparateur est "un ou plusieurs espaces". Utilise plutôt awk.
Par exemple, pour obtenir le troisième champ :
df ~ | awk '/\/dev/{print $3}'Hors ligne
#3 Le 06/04/2021, à 08:20
- Zakhar
Re : [Résolu] Quel est le séparateur dans cette ligne ?
Comme dit pingouinux, cut ne fonctionne qu'avec un seul séparateur, or là tu as un nombre d'espace dépendant des tailles affichées, et donc "cut" ne comprend plus.
L'autre option est donc de réduire un ensemble de plusieurs espaces à un seul, en intercalant le "sed" ci-dessous, et ensuite la commande cut marche comme prévu.
df ~ | grep /dev | sed 's/ */ /g' | cut -d" " -f5(Et l'option sans le grep... car sed sait faire ça aussi, comme le awk montré par pinguouinux)
df ~ | sed -n '/\/dev/s/ */ /gp' | cut -d" " -f5Dernière modification par Zakhar (Le 06/04/2021, à 08:27)
"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)
Hors ligne
#4 Le 06/04/2021, à 08:27
- Tamarou

Re : [Résolu] Quel est le séparateur dans cette ligne ?
Merci beaucoup pour vos explications.
C'est parfait ![]()
En ligne
#5 Le 06/04/2021, à 08:55
- Tamarou

Re : [Résolu] Quel est le séparateur dans cette ligne ?
heu ...
Ce qui fonctionne dans le terminal va moins bien dans un script.
Il me reste à affecter cette commande comme valeur d'une variable. Et là les ' posent problème.
t='df ~ | awk '/\/dev/{print $5}' | cut -c 1-2'
Je cherche comment faire avec.
Dernière modification par Tamarou (Le 06/04/2021, à 08:57)
En ligne
#6 Le 06/04/2021, à 09:02
- pingouinux

Re : [Résolu] Quel est le séparateur dans cette ligne ?
t=$(df ~ | awk '/\/dev/{print $5}' | cut -c 1-2)Hors ligne
#7 Le 06/04/2021, à 09:13
- MicP
Re : [Résolu] Quel est le séparateur dans cette ligne ?
Bonjour
Pour sélectionner un champ de la sortie de la commande df
comme par exemple le champ pcent on peut utiliser l'option --output=pcent
michel@xubu:~$ df ~
Sys. de fichiers blocs de 1K Utilisé Disponible Uti% Monté sur
/dev/sda5 17867604 8720812 8216104 52% /
michel@xubu:~$ michel@xubu:~$ df ~ --output=pcent
Uti%
52%
michel@xubu:~$ mais bon, il faudra quand même supprimer la ligne d'en-tête, un caractère espace qui précède la valeur retournée, et le % final
Dernière modification par MicP (Le 06/04/2021, à 09:35)
Hors ligne
#8 Le 06/04/2021, à 09:18
- Hizoka

Re : [Résolu] Quel est le séparateur dans cette ligne ?
Bonjour,
du coup, je propose :
df ~ --output=pcent | grep -Eo "[0-9]*"Kubuntu 20.04 64bits
GUI d'extraction de piste de fichier mkv -- Vignettes personnalisées -- Select boosté aux hormones -- Générateur de barre de progression
Hors ligne
#9 Le 06/04/2021, à 09:20
- Tamarou

Re : [Résolu] Quel est le séparateur dans cette ligne ?
A oui, je n'avais pas trouvé les parenthèses. Merci pour tout.
A plusieurs on avance bien ![]()
Cela servira peut-être aussi à ce sujet.
https://forum.ubuntu-fr.org/viewtopic.p … #p22437249
Dernière modification par Tamarou (Le 06/04/2021, à 09:33)
En ligne
#10 Le 06/04/2021, à 09:31
- Watael

Re : [Résolu] Quel est le séparateur dans cette ligne ?
dès qu'on utilise un langage un peu évolué comme awk ou sed, on oublie tout le reste (grep, cut, sed, awk...).
c'est awk OU sed, tout seul.
Dernière modification par Watael (Le 06/04/2021, à 09:55)
Welcome to sHell. · eval is evil.
Hors ligne
#11 Le 06/04/2021, à 09:36
- MicP
Re : [Résolu] Quel est le séparateur dans cette ligne ?
C'est possible aussi avec sed tout seul :
df ~ --output=pcent | sed '1d;s/[^0-9]//g'EDIT : correction : ipcent - > pcent
Dernière modification par MicP (Le 06/04/2021, à 10:18)
Hors ligne
#12 Le 06/04/2021, à 09:59
- Watael

Re : [Résolu] Quel est le séparateur dans cette ligne ?
pourquoi ipcent ?
Dernière modification par Watael (Le 06/04/2021, à 10:02)
Welcome to sHell. · eval is evil.
Hors ligne
#13 Le 06/04/2021, à 10:17
- MicP
Re : [Résolu] Quel est le séparateur dans cette ligne ?
Oooops ! c’est une erreur de copié-collé de mes essais,
désolé, je corrige de suite mon précédent message.
Merci ![]()
=======
Pour ceux qui voudraient voir la liste des noms de champ utilisables,
voir :
info dfDernière modification par MicP (Le 06/04/2021, à 10:24)
Hors ligne