Re: [HS] awk afficher une colonne sur deux colonnes
Bonjour, et avec la commande column, ce ne serait pas plus simple ? : $ seq 100 120|column -c 20 100 111 101 112 102 113 103 114 104 115 105 116 106 117 107 118 108 119 109 120 110 On Fri, Mar 18, 2022 at 09:12:54AM +0100, David Martin wrote: > Bonjour à tous, > > Je souhaiterai afficher une colonne sur deux colonne, j'arrive à extraire > des numéros de ligne > des (ID) de VM. > > 100 > 101 > 102. > jusqu'à 120 > > et je souhaiterai avoir > > 100 111 > 101 112 > . > 110.. > > Avec awk peut on faire ça ? > Je ne trouve pas; > > -- > david martin -- Bertrand Orvoine
Re: [HS] awk afficher une colonne sur deux colonnes
salut, si vraiment l'idée est d'utiliser awk: seq 120 140 | awk ' { if (NR%2) o=$1 else print o,$1 } END { if (NR%2) print o } ' Par contre je tiens à dire que pour réaranger, écraser, merger des colonnes, l'outils de référence pour moi est perl -F. marc
Re: [HS] awk afficher une colonne sur deux colonnes
_ #!/usr/bin/awk { start = 1 printf("%s%s", $start, FS) inc = 2 } { for(i=start + inc; i < NF+1; ) { printf("%s%s", $i, FS) i = i + inc } print "" } _ Je n'ai pas réussi à faire fonctionner l'incrément dans le for() et ça m'étonne... Le ven. 18 mars 2022 à 17:09, Marc Chantreux a écrit : > salut, > > > for i in {100..120}; do echo $i; done | column -c 19 > > seq 100 120 | xargs -n2 > > for a b ({100..120}) echo $a $b > > print -C2 {100..120} > > > cordialement, > > -- > Marc Chantreux > Direction du numérique de l'Université de Strasbourg > Pôle de Calcul et Services Avancés à la Recherche (CESAR) > http://annuaire.unistra.fr/p/20200 > >
Re: [HS] awk afficher une colonne sur deux colonnes
salut, > for i in {100..120}; do echo $i; done | column -c 19 seq 100 120 | xargs -n2 for a b ({100..120}) echo $a $b print -C2 {100..120} cordialement, -- Marc Chantreux Direction du numérique de l'Université de Strasbourg Pôle de Calcul et Services Avancés à la Recherche (CESAR) http://annuaire.unistra.fr/p/20200
Re: [HS] awk afficher une colonne sur deux colonnes
Je testerai... merci Jean-Marc Le ven. 18 mars 2022 à 13:16, Jean-Marc a écrit : > quelque chose comme ça, peut-être : > > for i in {100..120}; do echo $i; done | column -c 19 > > > > Le 18/03/22 à 11:52, David Martin a écrit : > > C'est bon j'ai trouvé en passant par les tableaux. > > Merci qd meme > > Cordialement > > > > > > Le ven. 18 mars 2022 à 11:03, Bernard Isambert a > écrit : > > > >> Bonjour, > >> La philosophie de awk est de traiter un fichier d'entrée ligne par > >> ligne, ici vous avez besoin de regarder la totalité du fichier d'entrée > >> (vos 20 lignes) avant de commencer à écrire. Awk n'est pas le bon outil. > >> En shell, vous pouvez : > >> - couper le fichier d'entrée en deux, avec wc -l, head, tail, split (par > >> exemple, il y a sûrement d'autres façons de faire) > >> - puis écrire les deux colonnes avec paste > >> Voir les "man" correspondants. > >> "info coreutils" vous redira quelques commandes de base pour ce genre de > >> manipulation. > >> > >> > >> Le 18/03/2022 à 09:12, David Martin a écrit : > >>> Bonjour à tous, > >>> > >>> Je souhaiterai afficher une colonne sur deux colonne, j'arrive à > >>> extraire des numéros de ligne > >>> des (ID) de VM. > >>> > >>> 100 > >>> 101 > >>> 102. > >>> jusqu'à 120 > >>> > >>> et je souhaiterai avoir > >>> > >>> 100 111 > >>> 101 112 > >>> . > >>> 110.. > >>> > >>> Avec awk peut on faire ça ? > >>> Je ne trouve pas; > >>> > >>> -- > >>> david martin > >>> > >> > >> -- > >> Bernard. > >> 25 ans d'utilisation de Debian. Comme le temps passe... > >> > >> > > > > -- > Jean-Marc > -- david martin
Re: [HS] awk afficher une colonne sur deux colonnes
quelque chose comme ça, peut-être : for i in {100..120}; do echo $i; done | column -c 19 Le 18/03/22 à 11:52, David Martin a écrit : C'est bon j'ai trouvé en passant par les tableaux. Merci qd meme Cordialement Le ven. 18 mars 2022 à 11:03, Bernard Isambert a écrit : Bonjour, La philosophie de awk est de traiter un fichier d'entrée ligne par ligne, ici vous avez besoin de regarder la totalité du fichier d'entrée (vos 20 lignes) avant de commencer à écrire. Awk n'est pas le bon outil. En shell, vous pouvez : - couper le fichier d'entrée en deux, avec wc -l, head, tail, split (par exemple, il y a sûrement d'autres façons de faire) - puis écrire les deux colonnes avec paste Voir les "man" correspondants. "info coreutils" vous redira quelques commandes de base pour ce genre de manipulation. Le 18/03/2022 à 09:12, David Martin a écrit : Bonjour à tous, Je souhaiterai afficher une colonne sur deux colonne, j'arrive à extraire des numéros de ligne des (ID) de VM. 100 101 102. jusqu'à 120 et je souhaiterai avoir 100 111 101 112 . 110.. Avec awk peut on faire ça ? Je ne trouve pas; -- david martin -- Bernard. 25 ans d'utilisation de Debian. Comme le temps passe... -- Jean-Marc OpenPGP_signature Description: OpenPGP digital signature
Re: [HS] awk afficher une colonne sur deux colonnes
C'est bon j'ai trouvé en passant par les tableaux. Merci qd meme Cordialement Le ven. 18 mars 2022 à 11:03, Bernard Isambert a écrit : > Bonjour, > La philosophie de awk est de traiter un fichier d'entrée ligne par > ligne, ici vous avez besoin de regarder la totalité du fichier d'entrée > (vos 20 lignes) avant de commencer à écrire. Awk n'est pas le bon outil. > En shell, vous pouvez : > - couper le fichier d'entrée en deux, avec wc -l, head, tail, split (par > exemple, il y a sûrement d'autres façons de faire) > - puis écrire les deux colonnes avec paste > Voir les "man" correspondants. > "info coreutils" vous redira quelques commandes de base pour ce genre de > manipulation. > > > Le 18/03/2022 à 09:12, David Martin a écrit : > > Bonjour à tous, > > > > Je souhaiterai afficher une colonne sur deux colonne, j'arrive à > > extraire des numéros de ligne > > des (ID) de VM. > > > > 100 > > 101 > > 102. > > jusqu'à 120 > > > > et je souhaiterai avoir > > > > 100 111 > > 101 112 > > . > > 110.. > > > > Avec awk peut on faire ça ? > > Je ne trouve pas; > > > > -- > > david martin > > > > -- > Bernard. > 25 ans d'utilisation de Debian. Comme le temps passe... > > -- david martin
Re: [HS] awk afficher une colonne sur deux colonnes
Bonjour, La philosophie de awk est de traiter un fichier d'entrée ligne par ligne, ici vous avez besoin de regarder la totalité du fichier d'entrée (vos 20 lignes) avant de commencer à écrire. Awk n'est pas le bon outil. En shell, vous pouvez : - couper le fichier d'entrée en deux, avec wc -l, head, tail, split (par exemple, il y a sûrement d'autres façons de faire) - puis écrire les deux colonnes avec paste Voir les "man" correspondants. "info coreutils" vous redira quelques commandes de base pour ce genre de manipulation. Le 18/03/2022 à 09:12, David Martin a écrit : Bonjour à tous, Je souhaiterai afficher une colonne sur deux colonne, j'arrive à extraire des numéros de ligne des (ID) de VM. 100 101 102. jusqu'à 120 et je souhaiterai avoir 100 111 101 112 . 110 .. Avec awk peut on faire ça ? Je ne trouve pas; -- david martin -- Bernard. 25 ans d'utilisation de Debian. Comme le temps passe...
[HS] awk afficher une colonne sur deux colonnes
Bonjour à tous, Je souhaiterai afficher une colonne sur deux colonne, j'arrive à extraire des numéros de ligne des (ID) de VM. 100 101 102. jusqu'à 120 et je souhaiterai avoir 100 111 101 112 . 110.. Avec awk peut on faire ça ? Je ne trouve pas; -- david martin