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

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Avoir 3 arguments dans un sed

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Avoir 3 arguments dans un sed

n°1385553
Mathew17
steam : matosman
Posté le 12-01-2016 à 16:35:04  profilanswer
 

Bonjour à tous,
 
J'essaye de faire un sed qui me recherche une donnée pour la copier dans un fichier texte avec la ligne suivante :
 

Code :
  1. sed -n "/france/{N;p}" liste3.txt > liste3FR.txt


 
Ce code marche, il recupere les lignes avec le mot france et les copie avec les lignes suivante dans le fichier liste3FR.txt
 
Cependant, je n'arrive pas à ajouter l'arguement -i, pour rendre la case insensible.
 
Par quel moyen, je peux m'y prendre ?
 

mood
Publicité
Posté le 12-01-2016 à 16:35:04  profilanswer
 

n°1385571
Zorglub197​5
Posté le 13-01-2016 à 10:08:14  profilanswer
 

Hello Mathew17 !
 
Je viens de tester cette commande (mais je ne connais ton format de fichier d'entrée) :  
 
sed -n "/[Ff][Rr][Aa][Nn][Cc][Ee]/{p}" input.txt > output.txt
 
Avec input.txt :
 
toto
france
titi
France
tata
FRANCE
tete
frAnce
tutu
 
Et je récupére ca dans output.txt :
 
france
France
FRANCE
frAnce
 
J'espère que cela t'aidera ;-)


Message édité par Zorglub1975 le 13-01-2016 à 10:08:37

---------------
Dell 17R-SE / HTPC 3770K / Serveur Linux 3220T / Server RPi ARMv6
n°1385573
Mathew17
steam : matosman
Posté le 13-01-2016 à 10:18:05  profilanswer
 

Ca marche, nickel.
 
Merci beaucoup

n°1385575
Zorglub197​5
Posté le 13-01-2016 à 10:39:30  profilanswer
 

Mathew17 a écrit :

Ca marche, nickel.
 
Merci beaucoup


 
De rien \o/


---------------
Dell 17R-SE / HTPC 3770K / Serveur Linux 3220T / Server RPi ARMv6
n°1385577
black_lord
Modérateur
Truth speaks from peacefulness
Posté le 13-01-2016 à 11:26:28  profilanswer
 

grep -i france liste > resultat.txt


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
n°1385578
Mathew17
steam : matosman
Posté le 13-01-2016 à 11:47:13  profilanswer
 

j'avais une autre question mais sans rapport avec grep.
 
Existe t-il un moyen de tester un lien web .m3u ou .ts avec wget ou ping ?
 
Afin de l'integrer dans mon programme

n°1385579
black_lord
Modérateur
Truth speaks from peacefulness
Posté le 13-01-2016 à 11:52:12  profilanswer
 

qu'est ce que tu appelles tester ?


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
n°1385580
Mathew17
steam : matosman
Posté le 13-01-2016 à 12:32:42  profilanswer
 

vérifier qu'il y a de la video en retour.

n°1385582
black_lord
Modérateur
Truth speaks from peacefulness
Posté le 13-01-2016 à 13:02:38  profilanswer
 

alors la réponse est non


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
n°1385679
Mathew17
steam : matosman
Posté le 15-01-2016 à 15:43:58  profilanswer
 

Deux autres questions.
 
Sur un code comme celui ci :
 

Code :
  1. #EXTM3U
  2. #EXTINF:-1,Date Creation 15.01.2016 - 15:27
  3. #EXTINF:-1,http://127.0.0.1
  4. #EXTINF:-1, un truc
  5. #EXTINF:-1, un autre truc
  6. #EXTINF:-1, machin
  7. http:// ... lien 1
  8. #EXTINF:chose
  9. http:// ... lien 2
  10. #EXTINF:-1,bidule
  11. #EXTINF:-1,chouette
  12. http:// ... lien 1


 
Je souhaiterais supprimer les lignes en doubles commençant par # à partir de la ligne 3.
Mais seulement celle qui ont # à la ligne suivante.
 
Je m'explique sur l'explique plus haut, je voudrai supprimer : les lignes : un truc, un autre truc et bidule
 
 
Et un autre élément, serait de supprimer un lien http lorsqu'il est présent en doublon mais avec sa ligne précédente commençant par #.
Mais ça peux se faire avec le code précédent. Tout en commençant à la ligne 3
Dans l'exemple, ce serait  "la ligne chouette" et la ligne suivante avec le lien "http lien 1"
 

mood
Publicité
Posté le 15-01-2016 à 15:43:58  profilanswer
 

n°1385704
Mathew17
steam : matosman
Posté le 16-01-2016 à 13:40:55  profilanswer
 

J'ai trouvé la solution à mon problème :
 
J'ai récupéré tous les liens http dans un fichier texte :

Code :
  1. sed.exe -n "/#EX/!p" temp1.txt> temp2.txt


 
Je supprime les doublons
 

Code :
  1. sort -g temp2.txt | uniq > temp3.txt


 
Et ensuite je test les adresses :
 

Code :
  1. for /F "delims=" %%a in (temp3.txt) do (
  2. wget %%a -o test.avi
  3. rem attente 1 seconde
  4. ping localhost -n 1 > NUL
  5. rem condition si fichier non vide
  6. for %%i in (test.avi) do if %%~zi GTR 900 echo %%a >> temp4.txt
  7. del test.avi
  8. )


 
Et je remets les titres  
 

Code :
  1. rem inserer titre chaines
  2. sed "/http/i\#EXTINF:0, Nom de la chaine" temp4.txt > chaine.m3u
  3. rem nettoyage
  4. del temp*


 
Alors, oui, c'est du batch et oui, c'est mal. Mais j'ai envie de pouvoir executer ce programme sous windows donc pas vraiment le choix.
Esce qu'il y a une maniere plus propre de faire la meme chose ?

Message cité 1 fois
Message édité par Mathew17 le 16-01-2016 à 13:43:18
n°1385749
black_lord
Modérateur
Truth speaks from peacefulness
Posté le 18-01-2016 à 12:04:47  profilanswer
 

Mathew17 a écrit :

J'ai trouvé la solution à mon problème :
 

Code :
  1. for /F "delims=" %%a in (temp3.txt) do (
  2. wget %%a -o test.avi
  3. rem attente 1 seconde
  4. ping localhost -n 1 > NUL
  5. rem condition si fichier non vide
  6. for %%i in (test.avi) do if %%~zi GTR 900 echo %%a >> temp4.txt
  7. del test.avi
  8. )




 
Tu testes avec un ping [:pingouino]  
 
et plus avant  

Citation :


vérifier qu'il y a de la video en retour.


 
je  [:pingouino]  
 
tu pourrais au moins faire un curl et checker le content-type. un ping ça ne rime à rien


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me

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

  Avoir 3 arguments dans un sed

 

Sujets relatifs
[Résolu][ksh] Modifier les arguments d'une boucle forRedirection de script avec arguments
find : Liste d'arguments trop longueSpécifier des arguments avec les scripts de /etc/init.d ?
bash : 2 problemes : espaces et arguments comme /path/to/*arguments de ls?
Linux vs W2k en serveur: cherche arguments[potrouvé] dpkg-buildpackage et arguments pour ./configure ?
message = setenv: Too many arguments ?? 
Plus de sujets relatifs à : Avoir 3 arguments dans un sed



Copyright © 1997-2016 Hardware.fr SARL (Signaler un contenu illicite) / Groupe LDLC / Shop HFR