GNU/Linux >> Tutoriels Linux >  >> Linux

3 astuces pour obtenir plusieurs sorties de commandes dans la même ligne

Trois astuces pour obtenir la sortie de deux commandes dans un seule rangée. Normalement, deux sorties de commandes seront toujours séparées par un retour chariot dans le terminal Linux.

L'un des principaux obstacles à la création de scripts est de bien formater vos sorties en fonction des exigences. Sous Linux/Unix, chaque commande stdout sa sortie toujours dans une nouvelle ligne. C'est un obstacle dans de nombreuses situations où le codeur veut deux sorties, deux termes, deux variables dans une seule ligne, par exemple au format CSV. Dans cet article, nous verrons comment présenter la sortie de deux commandes ou plus sur une seule ligne.

A lire aussi :Articles liés aux scripts

Normalement, lorsque nous exécutons plus d'une commande, elles affichent les sorties dans différentes lignes :

# date ; hostname
Sat Dec 24 01:35:50 EDT 2016
testsrv2

# echo text1; echo text2; echo text3
text1
text2
text3

Dans l'exemple ci-dessus, les commandes ont des sorties par ligne. Nous allons accomplir toutes les sorties sur une seule ligne en utilisant les astuces ci-dessous.

Astuce 1 :

Utiliser la fonction de traduction. Comme je l'ai dit plus tôt, chaque sortie de commande est accompagnée d'un retour chariot. Nous allons traduire le retour chariot avec un caractère de tabulation, obtenant ainsi deux sorties de commandes ou plus sur une seule ligne.

# (date; hostname) |tr '\n' '\t'
Sat Dec 24 01:36:22 EDT 2016    testsrv2

# (echo text1; echo text2; echo text3) |tr '\n' '\t'
text1   text2   text3

En contournant les sorties pour traduire la fonction, nous avons obtenu une sortie à une seule ligne. Ici, nous avons instruit tr fonction pour traduire tous les retours chariot (\n ) à tabulation (\t ).

Si vous voulez sortir au format CSV (valeurs séparées par des virgules), remplacez tabulation par une virgule et vous l'obtiendrez.

# (date; hostname) |tr '\n' ','
Sat Dec 24 01:43:09 EDT 2016,testsrv2,

# (echo text1; echo text2; echo text3) |tr '\n' ','
text1,text2,text3,

Vous pouvez observer une virgule finale qui montre que chaque sortie de commande se termine par \n et donc elle est remplacée par ,

Astuce 2 :

En définissant chaque sortie de commande comme une variable. Ici, nous allons stocker la sortie de chaque commande dans une variable, puis nous ferons écho à ces variables dans une seule ligne.

# mydate=`date`

# myname=`hostname`

# echo $myname $mydate
testsrv2 Sat Dec 24 01:46:04 EDT 2016

Ici, nous avons stocké la sortie de la commande date et hostname dans mydate et myname variables. Dans la dernière commande, nous avons fait écho aux deux variables avec un espace entre elles. Notez que la sortie des commandes peut être stockée dans une variable en exécutant la commande à l'aide de backticks (exécution en ligne) !

Astuce 3 :

En faisant écho aux sorties d'exécution en ligne. Exécution en ligne, c'est-à-dire en utilisant des backticks pour exécuter des commandes dans une autre commande. Nous utiliserons cette astuce pour faire écho aux sorties sur une seule ligne.

# echo "`date` `hostname`"
Sat Dec 24 01:50:36 EDT 2016 testsrv2

Dans l'exemple ci-dessus, nous avons d'abord exécuté des commandes et obtenu des sorties. Mais ces sorties sont introduites dans la commande echo. Par conséquent, la commande echo les place sur une seule ligne.

# echo "`echo text1` `echo text2` `echo text3`"
text1 text2 text3

Notez que nous avons exécuté chaque commande entre guillemets séparés.


Linux
  1. Sortie de la "dernière" commande ?

  2. $_ Vs !$. Dernier argument de la commande précédente et redirection de sortie ?

  3. Commande d'écho Linux

  4. CentOS / RHEL :Comment afficher les commandes exécutées dans la sortie de la commande yum history

  5. CentOS / RHEL :Comment obtenir la date et l'heure de la commande exécutée dans la sortie de la commande d'historique

Astuces de formatage pour la commande Linux date

Comment changer la couleur de sortie de 'Echo' sous Linux

5 des commandes les plus ennuyeuses de Linux

Exemples de commandes echo Linux

Exécutez plusieurs commandes parallèles à la fois dans le même terminal

Obtenir la première ligne de la sortie d'une commande shell