Bonjour
Voilà un script :
#! /bin/bash
info="Numero: 01 Nom: Jean Age: 22 Langue: English
Numero: 01 Nom: Jean Age: 22 Langue: Anglais
Numero: 02 Nom: Claude Age: 26 Langue: Francais
Numero: 03 Nom: Pierre Age: 53 Langue: Francais"
boucle=$(for i in 01 02 03; do
num=$(echo "$info" | awk '{if ($2=='$i') {print $2}}' | sort -u)
nom=$(echo "$info" | awk '{if ($2=='$i') {print $4}}' | sort -u)
echo "TRUE Numero: "$num" Nom: "$nom"|"
done)
echo
echo "$boucle"
echo
echo "$boucle" | xargs -n 100
echo
echo "$boucle" | sed '{:a;$!N;s_\n_ _;ta}'
Voilà ce que ça me retourne...
Avec echo "$boucle"
TRUE Numero: 01 Nom: Jean|
TRUE Numero: 02 Nom: Claude|
TRUE Numero: 03 Nom: Pierre|
Avec echo "$boucle" | xargs -n 100
TRUE Numero: 01 Nom: Jean| TRUE Numero: 02 Nom: Claude| TRUE Numero: 03 Nom: Pierre|
Avec echo "$boucle" | sed '{:a;$!N;s_\n_ _;ta}'
TRUE Numero: 01 Nom: Jean| TRUE Numero: 02 Nom: Claude| TRUE Numero: 03 Nom: Pierre|
J'aimerais comprendre pourquoi avec "echo "$boucle" | xargs -n 100" et "echo "$boucle" | sed '{:a;$!N;s_\n_ _;ta}'" pourquoi j'ai un espace après le | de "| TRUE"
NB:
Si il y a une autre solution de me retourner le résultat de "$boucle" sur une ligne je suis bien sûr preneur !
Amicalement Slyfox