web-dev-qa-db-fra.com

Commande cut ou awk pour imprimer le premier champ de la première ligne

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
55
user3331975

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}'
140
devnull

Spécifiez le numéro de ligne à l'aide de la variable intégrée NR.

awk 'NR==1{print $1}' /etc/*release
17
jaypal singh

essaye ça:

head -1 /etc/*release | awk '{print $1}'
7
developer
sed -n 1p /etc/*release |cut -d " " -f1

si délimité par des tabulations:

sed -n 1p /etc/*release |cut -f1
2
Raha Pazoki

Vous pouvez utiliser le head au lieu de cat:

head -n1 /etc/*release | awk '{print $1}'
2
Junaid18183

awk, sed, pipe, c'est lourd

set `cat /etc/*release`; echo $1
1
Emmanuel

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.

0
user3322829

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}'
0
Jayesh Bhoi