• [HS] awk afficher une colonne sur deux colonnes

    From David Martin@21:1/5 to All on Fri Mar 18 09:20:02 2022
    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

    <div dir="ltr">Bonjour à tous, <div><br></div><div>Je souhaiterai afficher une colonne sur deux colonne, j&#39;arrive à extraire des numéros de ligne</div><div>des (ID) de VM.</div><div><br></div><div>100</div><div>101</div><div>102.....</div><div>
    jusqu&#39;à 120</div><div><br></div><div>et je souhaiterai avoir </div><div><br></div><div>100   111</div><div>101   112<br><div><div>.....</div><div>110    ......</div><div><br></div><div>Avec awk peut on faire ça ?</div><div>Je ne trouve pas;</
    <div><br></div>-- <br><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr">david martin<div><br></div></div></div></div></div></div>

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Bernard Isambert@21:1/5 to All on Fri Mar 18 11:10:01 2022
    Qm9uam91ciwNCkxhIHBoaWxvc29waGllIGRlIGF3ayBlc3QgZGUgdHJhaXRlciB1biBmaWNo aWVyIGQnZW50csOpZSBsaWduZSBwYXIgDQpsaWduZSwgaWNpIHZvdXMgYXZleiBiZXNvaW4g ZGUgcmVnYXJkZXIgbGEgdG90YWxpdMOpIGR1IGZpY2hpZXIgZCdlbnRyw6llIA0KKHZvcyAy MCBsaWduZXMpIGF2YW50IGRlIGNvbW1lbmNlciDDoCDDqWNyaXJlLiBBd2sgbidlc3QgcGFz IGxlIGJvbiBvdXRpbC4NCkVuIHNoZWxsLCB2b3VzIHBvdXZleiA6DQotIGNvdXBlciBsZSBm aWNoaWVyIGQnZW50csOpZSBlbiBkZXV4LCBhdmVjIHdjIC1sLCBoZWFkLCB0YWlsLCBzcGxp dCAocGFyIA0KZXhlbXBsZSwgaWwgeSBhIHPDu3JlbWVudCBkJ2F1dHJlcyBmYcOnb25zIGRl IGZhaXJlKQ0KLSBwdWlzIMOpY3JpcmUgbGVzIGRldXggY29sb25uZXMgYXZlYyBwYXN0ZQ0K Vm9pciBsZXMgIm1hbiIgY29ycmVzcG9uZGFudHMuDQoiaW5mbyBjb3JldXRpbHMiIHZvdXMg cmVkaXJhIHF1ZWxxdWVzIGNvbW1hbmRlcyBkZSBiYXNlIHBvdXIgY2UgZ2VucmUgZGUgDQpt YW5pcHVsYXRpb24uDQoNCg0KTGUgMTgvMDMvMjAyMiDDoCAwOToxMiwgRGF2aWQgTWFydGlu IGEgw6ljcml0wqA6DQo+IEJvbmpvdXIgw6AgdG91cywNCj4NCj4gSmUgc291aGFpdGVyYWkg YWZmaWNoZXIgdW5lIGNvbG9ubmUgc3VyIGRldXggY29sb25uZSwgaidhcnJpdmUgw6AgDQo+ IGV4dHJhaXJlIGRlcyBudW3DqXJvcyBkZSBsaWduZQ0KPiBkZXMgKElEKSBkZSBWTS4NCj4N Cj4gMTAwDQo+IDEwMQ0KPiAxMDIuLi4uLg0KPiBqdXNxdSfDoCAxMjANCj4NCj4gZXQgamUg c291aGFpdGVyYWkgYXZvaXINCj4NCj4gMTAwwqAgwqAxMTENCj4gMTAxwqAgwqAxMTINCj4g Li4uLi4NCj4gMTEwwqAgwqAgLi4uLi4uDQo+DQo+IEF2ZWMgYXdrIHBldXQgb24gZmFpcmUg w6dhID8NCj4gSmUgbmUgdHJvdXZlIHBhczsNCj4NCj4gLS0gDQo+IGRhdmlkIG1hcnRpbg0K Pg0KDQotLSANCkJlcm5hcmQuDQoyNSBhbnMgZCd1dGlsaXNhdGlvbiBkZSBEZWJpYW4uIENv bW1lIGxlIHRlbXBzIHBhc3NlLi4uDQoNCg==

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From David Martin@21:1/5 to All on Fri Mar 18 12:00:01 2022
    C'est bon j'ai trouvé en passant par les tableaux.
    Merci qd meme
    Cordialement


    Le ven. 18 mars 2022 à 11:03, Bernard Isambert <bern@taranig.net> 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

    <div dir="ltr">C&#39;est bon j&#39;ai trouvé en passant par les tableaux.<div>Merci qd meme</div><div>Cordialement</div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Le ven. 18 mars 2022 à 11:03, Bernard Isambert
    &lt;<a href="mailto:bern@taranig.net">bern@taranig.net</a>&gt; a écrit :<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Bonjour,<br>
    La philosophie de awk est de traiter un fichier d&#39;entrée ligne par <br> ligne, ici vous avez besoin de regarder la totalité du fichier d&#39;entrée <br>
    (vos 20 lignes) avant de commencer à écrire. Awk n&#39;est pas le bon outil.<br>
    En shell, vous pouvez :<br>
    - couper le fichier d&#39;entrée en deux, avec wc -l, head, tail, split (par <br>
    exemple, il y a sûrement d&#39;autres façons de faire)<br>
    - puis écrire les deux colonnes avec paste<br>
    Voir les &quot;man&quot; correspondants.<br>
    &quot;info
  • From David Martin@21:1/5 to All on Fri Mar 18 13:40:01 2022
    Je testerai... merci Jean-Marc


    Le ven. 18 mars 2022 à 13:16, Jean-Marc <jean-marc@6jf.be> 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 <bern@taranig.net> 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

    <div dir="ltr">Je testerai... merci Jean-Marc<div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Le ven. 18 mars 2022 à 13:16, Jean-Marc &lt;<a href="mailto:jean-marc@6jf.be">jean-marc@6jf.be</a>&gt; a écrit :<br></
    <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">quelque chose comme ça, peut-être :<br>

    for i in {100..120}; do echo $i; done | column -c 19<br>



    Le 18/03/22 à 11:52, David Martin a écrit :<br>
    &gt; C&#39;est bon j&#39;ai trouvé en passant par les tableaux.<br>
    &gt; Merci qd meme<br>
    &gt; Cordialement<br>
    &gt; <br>
    &gt; <br>
    &gt; Le ven. 18 mars 2022 à 11:03, Bernard Isambert &lt;<a href="mailto:bern@taranig.net" target="_blank">bern@taranig.net</a>&gt; a écrit :<br>
    &gt; <br>
    &gt;&gt; Bonjour,<br>
    &gt;&gt; La philosophie de awk est de traiter un fichier d&#39;entrée ligne par<br>
    &gt;&gt; ligne, ici vous avez besoin de
  • From Jean-Marc@21:1/5 to All on Fri Mar 18 13:20:02 2022
    --------------ZvTGGeHOaqCjQtg0dogOHHdX
    Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64

    cXVlbHF1ZSBjaG9zZSBjb21tZSDDp2EsIHBldXQtw6p0cmUgOg0KDQpmb3IgaSBpbiB7MTAw Li4xMjB9OyBkbyBlY2hvICRpOyBkb25lIHwgY29sdW1uIC1jIDE5DQoNCg0KDQpMZSAxOC8w My8yMiDDoCAxMTo1MiwgRGF2aWQgTWFydGluIGEgw6ljcml0wqA6DQo+IEMnZXN0IGJvbiBq J2FpIHRyb3V2w6kgZW4gcGFzc2FudCBwYXIgbGVzIHRhYmxlYXV4Lg0KPiBNZXJjaSBxZCBt ZW1lDQo+IENvcmRpYWxlbWVudA0KPiANCj4gDQo+IExlIHZlbi4gMTggbWFycyAyMDIyIMOg IDExOjAzLCBCZXJuYXJkIElzYW1iZXJ0IDxiZXJuQHRhcmFuaWcubmV0PiBhIMOpY3JpdCA6 DQo+IA0KPj4gQm9uam91ciwNCj4+IExhIHBoaWxvc29waGllIGRlIGF3ayBlc3QgZGUgdHJh aXRlciB1biBmaWNoaWVyIGQnZW50csOpZSBsaWduZSBwYXINCj4+IGxpZ25lLCBpY2kgdm91 cyBhdmV6IGJlc29pbiBkZSByZWdhcmRlciBsYSB0b3RhbGl0w6kgZHUgZmljaGllciBkJ2Vu dHLDqWUNCj4+ICh2b3MgMjAgbGlnbmVzKSBhdmFudCBkZSBjb21tZW5jZXIgw6Agw6ljcmly ZS4gQXdrIG4nZXN0IHBhcyBsZSBib24gb3V0aWwuDQo+PiBFbiBzaGVsbCwgdm91cyBwb3V2 ZXogOg0KPj4gLSBjb3VwZXIgbGUgZmljaGllciBkJ2VudHLDqWUgZW4gZGV1eCwgYXZlYyB3 YyAtbCwgaGVhZCwgdGFpbCwgc3BsaXQgKHBhcg0KPj4gZXhlbXBsZSwgaWwgeSBhIHPDu3Jl bWVudCBkJ2F1dHJlcyBmYcOnb25zIGRlIGZhaXJlKQ0KPj4gLSBwdWlzIMOpY3JpcmUgbGVz IGRldXggY29sb25uZXMgYXZlYyBwYXN0ZQ0KPj4gVm9pciBsZXMgIm1hbiIgY29ycmVzcG9u ZGFudHMuDQo+PiAiaW5mbyBjb3JldXRpbHMiIHZvdXMgcmVkaXJhIHF1ZWxxdWVzIGNvbW1h bmRlcyBkZSBiYXNlIHBvdXIgY2UgZ2VucmUgZGUNCj4+IG1hbmlwdWxhdGlvbi4NCj4+DQo+ Pg0KPj4gTGUgMTgvMDMvMjAyMiDDoCAwOToxMiwgRGF2aWQgTWFydGluIGEgw6ljcml0IDoN Cj4+PiBCb25qb3VyIMOgIHRvdXMsDQo+Pj4NCj4+PiBKZSBzb3VoYWl0ZXJhaSBhZmZpY2hl ciB1bmUgY29sb25uZSBzdXIgZGV1eCBjb2xvbm5lLCBqJ2Fycml2ZSDDoA0KPj4+IGV4dHJh aXJlIGRlcyBudW3DqXJvcyBkZSBsaWduZQ0KPj4+IGRlcyAoSUQpIGRlIFZNLg0KPj4+DQo+ Pj4gMTAwDQo+Pj4gMTAxDQo+Pj4gMTAyLi4uLi4NCj4+PiBqdXNxdSfDoCAxMjANCj4+Pg0K Pj4+IGV0IGplIHNvdWhhaXRlcmFpIGF2b2lyDQo+Pj4NCj4+PiAxMDAgICAxMTENCj4+PiAx MDEgICAxMTINCj4+PiAuLi4uLg0KPj4+IDExMCAgICAuLi4uLi4NCj4+Pg0KPj4+IEF2ZWMg YXdrIHBldXQgb24gZmFpcmUgw6dhID8NCj4+PiBKZSBuZSB0cm91dmUgcGFzOw0KPj4+DQo+ Pj4gLS0NCj4+PiBkYXZpZCBtYXJ0aW4NCj4+Pg0KPj4NCj4+IC0tDQo+PiBCZXJuYXJkLg0K Pj4gMjUgYW5zIGQndXRpbGlzYXRpb24gZGUgRGViaWFuLiBDb21tZSBsZSB0ZW1wcyBwYXNz ZS4uLg0KPj4NCj4+DQo+IA0KDQotLSANCkplYW4tTWFyYw0K

    --------------ZvTGGeHOaqCjQtg0dogOHHdX--

    -----BEGIN PGP SIGNATURE-----

    iHUEARYIAB0WIQQe1tJ1wH7aHlIabXRcceD57QuFWAUCYjRvlQAKCRBcceD57QuF WFfQAP9H3Yh7jTTCe4YpI/zLLgkvw0ER7ME1fBw+XTKtcNKPbQEAjX1qyoHg/vHf Ida/kqFbPXRUPYMFRyKE4AQWVWbWygU=
    =o0YJ
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Marc Chantreux@21:1/5 to All on Fri Mar 18 17:10:01 2022
    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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Mathias Dufresne@21:1/5 to All on Mon Mar 21 13:30:01 2022
    _____________________________________________
    #!/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 <mc@unistra.fr> 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



    <div dir="ltr"><div>_____________________________________________<br></div>#!/usr/bin/awk<br><br>{<br>  start = 1<br>  printf(&quot;%s%s&quot;, $start, FS)<br>  inc = 2<br>}<br>{<br>  for(i=start + inc; i &lt; NF+1; ) {<br>    printf(&quot;%s%s&
    quot;, $i, FS)<br>    i = i + inc<br>  }<br>  print &quot;&quot;<br><div>}</div><div><div>_____________________________________________</div><div><br></div><div>Je n&#39;ai pas réussi à faire fonctionner l&#39;incrément dans le for() et ça m&#39;Ã
    ©tonne...<br></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Le ven. 18 mars 2022 à 17:09, Marc Chantreux &lt;<a href="mailto:mc@unistra.fr">mc@unistra.fr</a>&gt; a écrit :<br></div><blockquote class="gmail_quote"
    style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">salut,<br>

    &gt; for i in {100..120}; do echo $i; done | column -c 19<br>

    seq 100 120 | xargs -n2<br>

    for a b ({100..120}) echo $a $b<br>

    print -C2 {100..120}<br>


    cordialement,<br>

    -- <br>
    Marc Chantreux<br>
    Direction du numérique de l&#39;Université de Strasbourg<br>
    Pôle de Calcul et Services Avancés à la Recherche (CESAR)<br>
    <a href="http://annuaire.unistra.fr/p/20200" rel="noreferrer" target="_blank">http://annuaire.unistra.fr/p/20200</a><br>

    </blockquote></div>

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Marc Chantreux@21:1/5 to All on Mon Mar 21 14:30:01 2022
    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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Bertrand Orvoine@21:1/5 to David Martin on Tue Mar 22 11:50:01 2022
    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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)