J'essaye d'imprimer le premier champ de la première ligne d'une sortie. Voici le cas. Je n'ai besoin que d'imprimer SUSE
à partir de cette sortie.
# cat /etc/*release
SUSE Linux Enterprise Server 11 (x86_64)
VERSION = 11
PATCHLEVEL = 2
Essayé avec cat /etc/*release | awk {'print $1}'
mais qui affiche la première chaîne de chaque ligne
SUSE
VERSION
PATCHLEVEL
Spécifiez NR
si vous souhaitez capturer la sortie des lignes sélectionnées:
awk 'NR==1{print $1}' /etc/*release
Une autre manière ( moche ) d’atteindre le même résultat serait:
awk '{print $1; exit}'
Un moyen efficace d'obtenir la première chaîne à partir d'une ligne spécifique, par exemple la ligne 42, dans la sortie serait:
awk 'NR==42{print $1; exit}'
Spécifiez le numéro de ligne à l'aide de la variable intégrée NR
.
awk 'NR==1{print $1}' /etc/*release
essaye ça:
head -1 /etc/*release | awk '{print $1}'
sed -n 1p /etc/*release |cut -d " " -f1
si délimité par des tabulations:
sed -n 1p /etc/*release |cut -f1
Vous pouvez utiliser le head
au lieu de cat
:
head -n1 /etc/*release | awk '{print $1}'
awk, sed, pipe, c'est lourd
set `cat /etc/*release`; echo $1
Vous pouvez tuer le processus qui exécute le conteneur.
Avec cette commande, vous pouvez lister les processus liés au conteneur docker:
ps -aux | grep $(docker ps -a | grep container-name | awk '{print $1}')
Vous avez maintenant les identifiants de processus à tuer avec kill ou kill -9.
Essayer
sed 'NUMq;d' /etc/*release | awk {'print $1}'
où NUM est le numéro de ligne
ex. sed '1q;d' /etc/*release | awk {'print $1}'