Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 10/11/2010, à 16:27

Compte anonymisé

[RESOLU] Concaténation en bash

Bonjour à tous,

Je suis incompétent en bash, je fais donc appel à la communauté de mon forum préféré.

J'ai une chaîne de caractère, qui est toujours quasi identique:

    xxxx-xxxx          x          x          x          x          x

Les x sont des caractères numériques, ces chiffres peuvent parfois être élevées, et avoir donc plusieurs caractères (sauf le premier groupe, qui a toujours une composition identique), l'écart entre eux ces groupes est toujours le même.

Je voudrais les concaténé, et ainsi garder à ma guise le groupe voulu.

J'ai assez de mal a utiliser cut, et aussi grep..


Une petite aide? roll


Merci

Dernière modification par texcor (Le 10/11/2010, à 19:02)

#2 Le 10/11/2010, à 18:15

frafa

Re : [RESOLU] Concaténation en bash

Bonjour,
tu veut faire quoi ?
reorganiser la totalité du fichier ou
reorganiser et n'afficher que certaines lignes ?

le plus simple est da passer par awk
exemple dans $var:

var="aaa-1111          a1          a2          a3          a4          a5
bbb-2222          b1          b2          b3          b4          b5
ccc-3333          c1          c2          c3          c4          c5"
echo -e "${var}" | awk -F" " '{print  "debut " $1 " ajout de texte " $3 " fin"}'

exemple dans fichier:

awk -F" " '{print  "debut " $1 " ajout de texte " $3 " fin"}' .../tonfichier

Résultat des 2 exemples:

debut aaa-1111 ajout de texte a2 fin
debut bbb-2222 ajout de texte b2 fin
debut ccc-3333 ajout de texte c2 fin

Hors ligne

#3 Le 10/11/2010, à 18:28

Compte anonymisé

Re : [RESOLU] Concaténation en bash

Je ne travail pas dans un fichier, seulement une chaîne de caractère,
je voudrais en faite filtrer tout contenu sauf ce qui est entre les espaces, et cela par groupe.

ex:

xxxx-xxxx          x          2          x          3          x

Filtrer tout, sauf le 2, ou le 3 (les seuls délimiteurs qu'il y a sont des espaces..)

#4 Le 10/11/2010, à 18:34

frafa

Re : [RESOLU] Concaténation en bash

Exemple sans le champ 2:

var="xxxx-xxxx          x          2          x          3          x"
awk -F" " '{print  $1 " " $3 " " $4 " " $5 " " $6}' <<<"${var}"

Résultat:

xxxx-xxxx 2 x 3 x

Dernière modification par frafa (Le 10/11/2010, à 18:34)

Hors ligne

#5 Le 10/11/2010, à 19:02

Compte anonymisé

Re : [RESOLU] Concaténation en bash

Merci beaucoup, j'ai pu finir mon script smile

#6 Le 10/11/2010, à 23:00

Totor

Re : [RESOLU] Concaténation en bash

Bonsoir,

Voilà qui devrait suffir wink

var="xxxx-xxxx          x          2          x          3          x"
echo "${var//[[:blank:]]}"

Dernière modification par Totor (Le 11/11/2010, à 18:12)


-- Lucid Lynx --

Hors ligne