Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3012 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  sed multi occurences sous linux

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

sed multi occurences sous linux

n°1413741
TopheLille
Posté le 29-01-2018 à 11:49:46  profilanswer
 

bonjour à tous
 
j ai un nom de fichier du type [tata]salut les gars [titi][tutu]
 
je cherche à virer tout ce qui est entre crochets
j ai donc utiliser la commande sed
mM=`echo $mM | sed -r 's/\[.*\]//g'`
 
mais en fait il vire tout  je suppose qu il comprend qu il doive virer tout ce qu il y a entre le [ de tata et le ] de tutu
 
une idée ?
merci

mood
Publicité
Posté le 29-01-2018 à 11:49:46  profilanswer
 

n°1413748
Profil sup​primé
Posté le 29-01-2018 à 12:19:12  answer
 

salut,
 

Code :
  1. $ echo "$mM" | sed -r 's/\[[^]]*\]//g'                                                                                                                                                                                                             
  2. salut les gars


mettez les variables entre guillemets
n'utilisez plus la forme ancienne de substitution de commande ``, mais $()
pensez à utiliser les balises CODE.

n°1413753
TopheLille
Posté le 29-01-2018 à 14:38:03  profilanswer
 

ok
merci beaucoup
je note tout cela

n°1413795
alokkin
tourner 7 fois la langue ...
Posté le 29-01-2018 à 23:31:00  profilanswer
 

Juste pour expliquer :  
 
Quand tu utilises le pattern \[.*\], tu dis de substituer un truc qui commence par [, se termine par ] et entre les temps, prends TOUT ce que tu trouves ... y compris [ ou ].
 
Dans la proposition de watael, il dit prend tout ce qui n'est pas ] entre [ et ]. Tu vois la différence ? Il s'arrête donc au premier crochet fermant qu'il rencontre.
 
Note également qu'il utilise le switch -r pour pouvoir utiliser des expressions régulières étendues.


---------------
Burn the museum, wipe your ass with the Mona Lisa, this way, at least, God will know your name.
n°1413855
TopheLille
Posté le 31-01-2018 à 19:49:45  profilanswer
 

merci pour ces explications supplémentaires

n°1413877
TopheLille
Posté le 01-02-2018 à 07:20:47  profilanswer
 

une derniere question
si je voulais recupérer chaque entité entre [] pour les traiter aux travers de variables, comment s y prendre ?
 
merci

n°1413927
TopheLille
Posté le 02-02-2018 à 07:15:47  profilanswer
 

pas d'idéee ?

n°1413945
zipe31
Posté le 02-02-2018 à 14:59:58  profilanswer
 

Salut,

TopheLille a écrit :

une derniere question
si je voulais recupérer chaque entité entre [] pour les traiter aux travers de variables, comment s y prendre ?
 
merci


 
Avec grep ?
 

Code :
  1. $ echo "[tata]salut les gars [titi][tutu]" | grep -Po '\[\K[^]]*'
  2. tata
  3. titi
  4. tutu


 
 ;)

n°1413957
TopheLille
Posté le 02-02-2018 à 20:14:07  profilanswer
 

merci beaucoup
j ai essayé awk mais je tourne en rond
j aimerai pouvoir recuperer chaque entité dans une variable pour pouvoir faire des comparaisons entre elles

n°1413963
alokkin
tourner 7 fois la langue ...
Posté le 02-02-2018 à 22:09:16  profilanswer
 

read w1 w2 w3 <<< $(echo "[tata]salut les gars [titi][tutu]" | grep -Po '\[\K[^]]*' | tr '\n' ' ')
echo "$w1;$w2;$w3"
> tata;titi;tutu
 
?


---------------
Burn the museum, wipe your ass with the Mona Lisa, this way, at least, God will know your name.
mood
Publicité
Posté le 02-02-2018 à 22:09:16  profilanswer
 

n°1413971
zipe31
Posté le 03-02-2018 à 11:04:13  profilanswer
 

TopheLille a écrit :

merci beaucoup
j ai essayé awk mais je tourne en rond
j aimerai pouvoir recuperer chaque entité dans une variable pour pouvoir faire des comparaisons entre elles


 

Code :
  1. $ read -a tab -d '\n' < <(echo "[tata]salut les gars [titi][tutu]" | grep -Po '\[\K[^]]*')
  2. $ echo "${#tab[@]}"
  3. 3
  4. $ echo "${tab[2]}"
  5. tutu
  6. $ echo "${tab[0]}"
  7. tata
  8. $ echo "${tab[1]}"
  9. titi


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  sed multi occurences sous linux

 

Sujets relatifs
Débutant sous Linux, besoin de conseilsProblème installation Linux
Audiophilie et Linux : Quelle carte son ?[Résolu] Installation de Linux sur Aspire A114-31-C4ZV
grand debutant sur linux et synoProblème mise jour Linux eee pc 1001px
multiboot linux windowsHELP calibration d'écran sous systeme linux
[Résolu] equivalents gpu-z sous linux debianMultiboot possible? Avec quelques OS linux, et un BIOS ancien
Plus de sujets relatifs à : sed multi occurences sous linux


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR