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

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [BASH] Extraire une URL d'un fichier (probleme avec grep)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[BASH] Extraire une URL d'un fichier (probleme avec grep)

n°897856
redvivi
Posté le 25-03-2007 à 22:18:33  profilanswer
 

Bonjour à tous  :D !
 
    Tout d'abord, merci de lire mon sujet ! Je fais appel à vous car j'ai un problème, pour des raisons obscures et sournoises que je ne developperai pas ici, je veux recuperer l'URL d'un fichier, j'ai procédé comme ceci:
 
wget http://www.m6.fr/content/video/inf [...] 230307.asx
cat Lille_00_230307.asx |grep mms://

 
Malheureusement, j'obtiens:
 
<Ref href = "mms://stream1.m6.fr.ipercast.net/m6.fr/6minutes/d/59/d070323190000SARAV5900000.wmv" />
 
Or je voudrais recuperer ce qui est en italique ! Comment dois-je proceder ?
 
Merci d'avance!
RedVivi
 
 

mood
Publicité
Posté le 25-03-2007 à 22:18:33  profilanswer
 

n°897857
Mjules
Modérateur
Parle dans le vide
Posté le 25-03-2007 à 22:23:30  profilanswer
 

si le cas réel est aussi simple que celui que tu donnes,  
cut -d\" -f1 devrait fonctionner mais je suis pas certains qu'il ne faille pas échapper les caractères.


---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
n°897859
redvivi
Posté le 25-03-2007 à 22:34:36  profilanswer
 

Je ne comprends pas ton utilisation de cut, mais effectivement l'exemple est le cas réel...

n°897861
Mjules
Modérateur
Parle dans le vide
Posté le 25-03-2007 à 22:40:24  profilanswer
 

[jules@tue-amour ~]$ cat test.txt
blabla
blabla
baaaaa
<Ref href = "mms://stream1.m6.fr.ipercast.net/m6.fr/6minutes/d/59/d070323190000SARAV5900000.wmv" />
blabla


[jules@tue-amour ~]$ grep mms test.txt |cut -d\" -f2
mms://stream1.m6.fr.ipercast.net/m6.fr/6minutes/d/59/d070323190000SARAV5900000.wmv


Message édité par Mjules le 25-03-2007 à 22:41:31

---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
n°907644
Raskol
Dissident
Posté le 27-04-2007 à 10:23:02  profilanswer
 

Bonjour Redvivi
 
Une commande possible avec sed:
 

# wget --quiet http://www.m6.fr/content/video/info/asx/Lille_00_230307.asx -O - | sed -n 's/\(.*\)\(mms:\/\/.*wmv\)\(.*\)/\2/p'

n°907938
carot0
Posté le 28-04-2007 à 11:05:45  profilanswer
 

doit passer comme ca aussi :  

cat Lille_00_230307.asx |grep mms:// |  awk -F"\"" '{print $2}'


---------------
In a world without walls and fences, who needs Windows and Gates
n°962340
redvivi
Posté le 09-10-2007 à 17:49:49  profilanswer
 

Bonjour !
 
        Vous m'avez bien aidé pour le cas précédent mais j'ai rebesoin de votre aide  :sweat:, je suis confronté à ce fichier (le méchant):
 

Code :
  1. <?xml version='1.0' encoding='UTF-8'?>
  2. <rss version='2.0' xmlns:itunes='http://www.itunes.com/dtds/podcast-1.0.dtd'>
  3.   <channel>
  4.     <title>M6 - Six Minutes National</title>
  5.     <description>Le journal tout en images d&apos;M6</description>
  6.     <link>http://www.m6info.fr/</link>
  7.     <copyright>M6</copyright>
  8.     <itunes:author>M6</itunes:author>
  9.     <itunes:subtitle>Le journal tout en images d&apos;M6</itunes:subtitle>
  10.     <itunes:summary>Tous les jours, l&apos;actualité nationale et internationale avec le journal tout en images d&apos;M6</itunes:summary>
  11.     <itunes:explicit>no</itunes:explicit>
  12.     <itunes:image href='http://www.m6.fr/podcast_info/podcast_6mn_national.jpg'/>
  13.     <itunes:category text='TV &amp; Film'/>
  14.     <itunes:category text='News &amp; Politics'/>
  15.     <itunes:keywords>informations, television, minutes, 6, infos</itunes:keywords>
  16.     <item>
  17.       <title>M6 - Six Minutes National - 02 octobre 2007</title>
  18.       <description>M6 - Six Minutes National - 02 octobre 2007</description>
  19.       <pubDate>Tue, 02 Oct 2007 19:00:00 +0200</pubDate>
  20.       <enclosure url='http://dl.podcast.m6.fr.ipercast.net/national/p071002190000SARAV9200000.mp4' type='video/mp4' lenght='43843395'/>
  21.       <itunes:subtitle>M6 - Six Minutes National - 02 octobre 2007</itunes:subtitle>
  22.       <itunes:summary>M6 - Six Minutes National - 02 octobre 2007</itunes:summary>
  23.     </item>
  24.     <item>
  25.       <title>M6 - Six Minutes National - 03 octobre 2007</title>
  26.       <description>M6 - Six Minutes National - 03 octobre 2007</description>
  27.       <pubDate>Wed, 03 Oct 2007 19:00:00 +0200</pubDate>
  28.       <enclosure url='http://dl.podcast.m6.fr.ipercast.net/national/p071003190000SARAV9200000.mp4' type='video/mp4' lenght='45477580'/>
  29.       <itunes:subtitle>M6 - Six Minutes National - 03 octobre 2007</itunes:subtitle>
  30.       <itunes:summary>M6 - Six Minutes National - 03 octobre 2007</itunes:summary>
  31.     </item>
  32.     <item>
  33.       <title>M6 - Six Minutes National - 04 octobre 2007</title>
  34.       <description>M6 - Six Minutes National - 04 octobre 2007</description>
  35.       <pubDate>Thu, 04 Oct 2007 19:00:00 +0200</pubDate>
  36.       <enclosure url='http://dl.podcast.m6.fr.ipercast.net/national/p071004190000SARAV9200000.mp4' type='video/mp4' lenght='51831083'/>
  37.       <itunes:subtitle>M6 - Six Minutes National - 04 octobre 2007</itunes:subtitle>
  38.       <itunes:summary>M6 - Six Minutes National - 04 octobre 2007</itunes:summary>
  39.     </item>
  40.     <item>
  41.       <title>M6 - Six Minutes National - 05 octobre 2007</title>
  42.       <description>M6 - Six Minutes National - 05 octobre 2007</description>
  43.       <pubDate>Fri, 05 Oct 2007 19:00:00 +0200</pubDate>
  44.       <enclosure url='http://dl.podcast.m6.fr.ipercast.net/national/p071005190000SARAV9200000.mp4' type='video/mp4' lenght='51679344'/>
  45.       <itunes:subtitle>M6 - Six Minutes National - 05 octobre 2007</itunes:subtitle>
  46.       <itunes:summary>M6 - Six Minutes National - 05 octobre 2007</itunes:summary>
  47.     </item>
  48.     <item>
  49.       <title>M6 - Six Minutes National - 06 octobre 2007</title>
  50.       <description>M6 - Six Minutes National - 06 octobre 2007</description>
  51.       <pubDate>Sat, 06 Oct 2007 19:00:00 +0200</pubDate>
  52.       <enclosure url='http://dl.podcast.m6.fr.ipercast.net/national/p071006190000SARAV9200000.mp4' type='video/mp4' lenght='36528999'/>
  53.       <itunes:subtitle>M6 - Six Minutes National - 06 octobre 2007</itunes:subtitle>
  54.       <itunes:summary>M6 - Six Minutes National - 06 octobre 2007</itunes:summary>
  55.     </item>
  56.     <item>
  57.       <title>M6 - Six Minutes National - 07 octobre 2007</title>
  58.       <description>M6 - Six Minutes National - 07 octobre 2007</description>
  59.       <pubDate>Sun, 07 Oct 2007 19:00:00 +0200</pubDate>
  60.       <enclosure url='http://dl.podcast.m6.fr.ipercast.net/national/p071007190000SARAV9200000.mp4' type='video/mp4' lenght='41104567'/>
  61.       <itunes:subtitle>M6 - Six Minutes National - 07 octobre 2007</itunes:subtitle>
  62.       <itunes:summary>M6 - Six Minutes National - 07 octobre 2007</itunes:summary>
  63.     </item>
  64.     <item>
  65.       <title>M6 - Six Minutes National - 08 octobre 2007</title>
  66.       <description>M6 - Six Minutes National - 08 octobre 2007</description>
  67.       <pubDate>Mon, 08 Oct 2007 19:00:00 +0200</pubDate>
  68.       <enclosure url='http://dl.podcast.m6.fr.ipercast.net/national/p071008190000SARAV9200000.mp4' type='video/mp4' lenght='43133278'/>
  69.       <itunes:subtitle>M6 - Six Minutes National - 08 octobre 2007</itunes:subtitle>
  70.       <itunes:summary>M6 - Six Minutes National - 08 octobre 2007</itunes:summary>
  71.     </item>
  72.   </channel>
  73. </rss>
  74. root@Inet-Secondaire:~# clear
  75. root@Inet-Secondaire:~# cat podcast_6mn_national.xml
  76. <?xml version='1.0' encoding='UTF-8'?>
  77. <rss version='2.0' xmlns:itunes='http://www.itunes.com/dtds/podcast-1.0.dtd'>
  78.   <channel>
  79.     <title>M6 - Six Minutes National</title>
  80.     <description>Le journal tout en images d&apos;M6</description>
  81.     <link>http://www.m6info.fr/</link>
  82.     <copyright>M6</copyright>
  83.     <itunes:author>M6</itunes:author>
  84.     <itunes:subtitle>Le journal tout en images d&apos;M6</itunes:subtitle>
  85.     <itunes:summary>Tous les jours, l&apos;actualité nationale et internationale avec le journal tout en images d&apos;M6</itunes:summary>
  86.     <itunes:explicit>no</itunes:explicit>
  87.     <itunes:image href='http://www.m6.fr/podcast_info/podcast_6mn_national.jpg'/>
  88.     <itunes:category text='TV &amp; Film'/>
  89.     <itunes:category text='News &amp; Politics'/>
  90.     <itunes:keywords>informations, television, minutes, 6, infos</itunes:keywords>
  91.     <item>
  92.       <title>M6 - Six Minutes National - 02 octobre 2007</title>
  93.       <description>M6 - Six Minutes National - 02 octobre 2007</description>
  94.       <pubDate>Tue, 02 Oct 2007 19:00:00 +0200</pubDate>
  95.       <enclosure url='http://dl.podcast.m6.fr.ipercast.net/national/p071002190000SARAV9200000.mp4' type='video/mp4' lenght='43843395'/>
  96.       <itunes:subtitle>M6 - Six Minutes National - 02 octobre 2007</itunes:subtitle>
  97.       <itunes:summary>M6 - Six Minutes National - 02 octobre 2007</itunes:summary>
  98.     </item>
  99.     <item>
  100.       <title>M6 - Six Minutes National - 03 octobre 2007</title>
  101.       <description>M6 - Six Minutes National - 03 octobre 2007</description>
  102.       <pubDate>Wed, 03 Oct 2007 19:00:00 +0200</pubDate>
  103.       <enclosure url='http://dl.podcast.m6.fr.ipercast.net/national/p071003190000SARAV9200000.mp4' type='video/mp4' lenght='45477580'/>
  104.       <itunes:subtitle>M6 - Six Minutes National - 03 octobre 2007</itunes:subtitle>
  105.       <itunes:summary>M6 - Six Minutes National - 03 octobre 2007</itunes:summary>
  106.     </item>
  107.     <item>
  108.       <title>M6 - Six Minutes National - 04 octobre 2007</title>
  109.       <description>M6 - Six Minutes National - 04 octobre 2007</description>
  110.       <pubDate>Thu, 04 Oct 2007 19:00:00 +0200</pubDate>
  111.       <enclosure url='http://dl.podcast.m6.fr.ipercast.net/national/p071004190000SARAV9200000.mp4' type='video/mp4' lenght='51831083'/>
  112.       <itunes:subtitle>M6 - Six Minutes National - 04 octobre 2007</itunes:subtitle>
  113.       <itunes:summary>M6 - Six Minutes National - 04 octobre 2007</itunes:summary>
  114.     </item>
  115.     <item>
  116.       <title>M6 - Six Minutes National - 05 octobre 2007</title>
  117.       <description>M6 - Six Minutes National - 05 octobre 2007</description>
  118.       <pubDate>Fri, 05 Oct 2007 19:00:00 +0200</pubDate>
  119.       <enclosure url='http://dl.podcast.m6.fr.ipercast.net/national/p071005190000SARAV9200000.mp4' type='video/mp4' lenght='51679344'/>
  120.       <itunes:subtitle>M6 - Six Minutes National - 05 octobre 2007</itunes:subtitle>
  121.       <itunes:summary>M6 - Six Minutes National - 05 octobre 2007</itunes:summary>
  122.     </item>
  123.     <item>
  124.       <title>M6 - Six Minutes National - 06 octobre 2007</title>
  125.       <description>M6 - Six Minutes National - 06 octobre 2007</description>
  126.       <pubDate>Sat, 06 Oct 2007 19:00:00 +0200</pubDate>
  127.       <enclosure url='http://dl.podcast.m6.fr.ipercast.net/national/p071006190000SARAV9200000.mp4' type='video/mp4' lenght='36528999'/>
  128.       <itunes:subtitle>M6 - Six Minutes National - 06 octobre 2007</itunes:subtitle>
  129.       <itunes:summary>M6 - Six Minutes National - 06 octobre 2007</itunes:summary>
  130.     </item>
  131.     <item>
  132.       <title>M6 - Six Minutes National - 07 octobre 2007</title>
  133.       <description>M6 - Six Minutes National - 07 octobre 2007</description>
  134.       <pubDate>Sun, 07 Oct 2007 19:00:00 +0200</pubDate>
  135.       <enclosure url='http://dl.podcast.m6.fr.ipercast.net/national/p071007190000SARAV9200000.mp4' type='video/mp4' lenght='41104567'/>
  136.       <itunes:subtitle>M6 - Six Minutes National - 07 octobre 2007</itunes:subtitle>
  137.       <itunes:summary>M6 - Six Minutes National - 07 octobre 2007</itunes:summary>
  138.     </item>
  139.     <item>
  140.       <title>M6 - Six Minutes National - 08 octobre 2007</title>
  141.       <description>M6 - Six Minutes National - 08 octobre 2007</description>
  142.       <pubDate>Mon, 08 Oct 2007 19:00:00 +0200</pubDate>
  143.       <enclosure url='http://dl.podcast.m6.fr.ipercast.net/national/p071008190000SARAV9200000.mp4' type='video/mp4' lenght='43133278'/>
  144.       <itunes:subtitle>M6 - Six Minutes National - 08 octobre 2007</itunes:subtitle>
  145.       <itunes:summary>M6 - Six Minutes National - 08 octobre 2007</itunes:summary>
  146.     </item>
  147.   </channel>
  148. </rss>


 
Je voudrais extraire le mp4 le plus récent du flux (c'est à dire le dernier, je veux juste récupérer l'url http://dl.podcast.m6.fr.ipercast.net/national/p071008190000SARAV9200000.mp4) mais je suis perdu dans les grep les awk les sed etc...quelles sont les commandes à exécuter pour extraire ce fichier ?
 
Merci d'avance !
RedVivi

n°962345
o'gure
Modérateur
Multi grognon de B_L
Posté le 09-10-2007 à 17:57:09  profilanswer
 

tu as des librairies faites pour en perl et des outils CLI pour le faire automatiquement. urlview extrait les urls et affiche un menu derrière, si tu peux récupérer le "moteur" d'extraction le tour sera jouer [:spamafote]

> apt-cache search url extract
elza - Script language for automating HTTP requests
libhtml-linkextractor-perl - Perl module used to extract links from HTML documents
squidclient - command-line URL extractor for Squid
texlive-latex-extra - TeX Live: LaTeX supplementary packages
urlscan - Extract and browse the URLs contained in an email (urlview replacement)
urlview - Extracts URLs from text


Message cité 1 fois
Message édité par o'gure le 09-10-2007 à 17:57:32

---------------
Relax. Take a deep breath !
n°962354
redvivi
Posté le 09-10-2007 à 18:45:08  profilanswer
 

o'gure a écrit :

tu as des librairies faites pour en perl et des outils CLI pour le faire automatiquement. urlview extrait les urls et affiche un menu derrière, si tu peux récupérer le "moteur" d'extraction le tour sera jouer [:spamafote]

> apt-cache search url extract  
elza - Script language for automating HTTP requests
libhtml-linkextractor-perl - Perl module used to extract links from HTML documents
squidclient - command-line URL extractor for Squid
texlive-latex-extra - TeX Live: LaTeX supplementary packages
urlscan - Extract and browse the URLs contained in an email (urlview replacement)
urlview - Extracts URLs from text




 
Le problème c'est que je ne vais pas utiliser le menu, l'url est incluse dans un script, donc pas de menu possible....ce n'est pas plus simple de le réaliser en shell?

n°962355
Xavier_OM
Monarchiste régicide (fr quoi)
Posté le 09-10-2007 à 18:46:58  profilanswer
 

Un peu de xsl : http://forum.hardware.fr/forum2.ph [...] w=0&nojs=0
 
Sinon en shell script c possible aussi oué... jte fais ca ce soir si j'y pense :o


---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.
mood
Publicité
Posté le 09-10-2007 à 18:46:58  profilanswer
 

n°962356
redvivi
Posté le 09-10-2007 à 18:52:33  profilanswer
 

Ce serait super ! merci davance !

n°962359
Xavier_OM
Monarchiste régicide (fr quoi)
Posté le 09-10-2007 à 19:04:05  profilanswer
 

La solution xsl en attendant : tu copies ça dans toto.xsl
 

<?xml version="1.0" encoding="utf-8" ?>
 
<xsl:stylesheet version="1.0"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                xmlns="http://www.w3.org/1999/xhtml">
 
    <xsl:output method="text" encoding="utf-8"/>
 
    <xsl:template match="/">
    <!-- on cherche le <enclosure> du dernier <item> -->
            <xsl:apply-templates select="rss/channel/item[last()]/enclosure"/>
    </xsl:template>
 
    <!-- quand on trouve un enclosure on passe ici -->
    <xsl:template match="enclosure">
        <!-- on affiche son attribut url -->
        <xsl:value-of select="@url"/>
    </xsl:template>
 
 
</xsl:stylesheet>


 
et tu fais

xsltproc toto.xsl ton_fichier.xml


 
et après ben tu lis le xsl et tu essaies de comprendre (à lire c'est facile à comprendre, à écrire faut avoir un peu de métier)
 
:o
 
edit :
A noter : le last() va chercher le dernier <item> (le plus bas dans le fichier), on suppose donc que le plus bas dans le fichier est le plus récent au niveau des dates.
L'équivalent direct en shell script est donc :

cat toto.xml | grep enclosure | sed -e "s/.*url='\([^']*\).*/\1/" | tail -1


Le grep garde les lignes contenant enclosure, le sed nettoie pour ne garder que les url, le tail filtre pour garder le dernier.
 
Si on suppose que le fichier est en désordre, il faut trier en fonction de la date. C'est à peine plus compliqué en xsl, un poil plus (mais pas trop) en shell script :o


Message édité par Xavier_OM le 09-10-2007 à 20:02:46

---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.
n°962382
redvivi
Posté le 09-10-2007 à 21:48:57  profilanswer
 

J'ai essayé de modifier le script pour ce type de flux:  
 

Code :
  1. <item>
  2.                                 <title><![CDATA[Journal :19/09/2007]]></title>
  3.                                 <link><![CDATA[http://s.tf1.fr/FluxJt/jt20d19092007/jt20d19092007.asx]]></link>
  4.                                 <pubDate>Wed, 19 Sep 2007 00:00:00 +0200</pubDate>
  5.                                 <description><![CDATA[Le Journal de 20h sur TF1]]></description>
  6.                                 <enclosure url="http://s.tf1.fr/FluxJt/jt20d19092007/jt20d19092007.asx" length="" type="video/x-ms-wmv"/>
  7.                         </item>
  8.         </channel>


 
Mais je me retrouve avec

Code :
  1. <enclosure url="http://s.tf1.fr/FluxJt/jt20d19092007/jt20d19092007.asx" length="" type="video/x-ms-wmv"/>


 
On dirait que le sed ne fonctionne pas !?
 
Merci d'avance !

n°962399
Xavier_OM
Monarchiste régicide (fr quoi)
Posté le 09-10-2007 à 23:28:46  profilanswer
 

Mon sed c'est :

sed -e "s/.*url='\([^']*\).*/\1/"


 
Or sed c'est de la forme : 's/ce_qu'on_cherche/ce_qu'on_met_à_la_place/'   (s pour substitution)
 
 
 
D'abord ce qu'on cherche avec ça (en rouge la version regexp) :
 
n'importe quoi, suivi d'une espace, suivi de url='
.* url='
 
on peut capturer un truc pour le ressortir avec \1 plus tard, d'où les parenthèses
\(  et plus loin  \)
 
tout sauf ', plein de fois (quand tu mets [^c] ca veut dire tout sauf c)
[^']*
 
suivi de : ' puis d'autres caractères. On se simplifie la vie, on va juste dire "suivi de n'importe quoi"
.*
 
d'où la regexp (sans les parenthèses) .* url='[^']*.* et avec les parenthèses .* url='\([^']*\).*
 
 
 
 
 
 
Si tu regardes ton nouveau truc que tu veux filtrer, tu vois qu'on passe de :

url='blablabla'


à :

url="blablabla"


 
Il faut donc travailler avec des " dans sed, au lieu des '. Donc on passe de :
.* url='\([^']*\).*
à :  
.* url="\([^"]*\).*
 
 
Evidemment pour que sed ne merde pas, il faut soit utiliser des \" au lieu des " (sinon au premier " sed va croire que la commande s'arrête là), soit utiliser des ' ' pour englober la commande, à la place des " ". Cette seconde solution est la plus simple.
 
Bilan : on passe de  

sed -e "s/.*url='\([^']*\).*/\1/"


à :

sed -e 's/.* url="\([^"]*\).*/\1/'


 
Juste une inversion des types de guillemets en fait ;)
 
cf : http://forum.hardware.fr/hfr/OSAlt [...] tm#t923945 pour un autre exemple de sed qui récupère une url

Message cité 1 fois
Message édité par Xavier_OM le 09-10-2007 à 23:51:18

---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.
n°962741
redvivi
Posté le 10-10-2007 à 19:32:05  profilanswer
 

Génial !! Merci beaucoup !! cependant quelquechose m'embete..j'essaye de faire passer

Code :
  1. cat podcast_6mn_lille.xml| grep enclosure | sed -e "s/.*url='\([^']*\).*/\1/" | tail -1


 
en argument de wget en entourant la commande avec des ''", ou des ``, mais rien n'y fait ! J'ai loupé quelque chose ?
 
Merci!
RedVivi


Message édité par redvivi le 10-10-2007 à 19:34:29
n°962756
Xavier_OM
Monarchiste régicide (fr quoi)
Posté le 10-10-2007 à 20:30:41  profilanswer
 

Non c'est censé marcher, il n'y a aucune faute là-dedans. C'est quoi ton erreur  :??:
En argument de wget, ca veut dire qu'au lieu du cat file c'est un wget -O - url ?


Message édité par Xavier_OM le 10-10-2007 à 20:31:20

---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.
n°963036
redvivi
Posté le 11-10-2007 à 18:58:10  profilanswer
 

C'est ok, juste une erreur dans la syntaxe.....Bilan de l'affaire, je progresse lol, par contre comme je ne dépasserai pas le maitre j'ai un petit souci: je n'arrive pas à enlever le Ref1= de Ref1=http://viptf1.yacast.net/tf1jt/jt13d11102007.asf, quand j'enleve les guillemets de sed il met que la syntaxe est incomplète...snif

n°963057
Xavier_OM
Monarchiste régicide (fr quoi)
Posté le 11-10-2007 à 20:02:08  profilanswer
 

redvivi a écrit :

C'est ok, juste une erreur dans la syntaxe.....Bilan de l'affaire, je progresse lol, par contre comme je ne dépasserai pas le maitre j'ai un petit souci: je n'arrive pas à enlever le Ref1= de Ref1=http://viptf1.yacast.net/tf1jt/jt13d11102007.asf, quand j'enleve les guillemets de sed il met que la syntaxe est incomplète...snif


 
poste ton code à problème (bout de sed + bout de xml) ;)


---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.
n°963083
redvivi
Posté le 11-10-2007 à 21:56:16  profilanswer
 

En faisant du cat, j'ai ça:
 

Code :
  1. :cat jt13d11102007.asf |grep Ref2
  2. Ref2=http://213.205.96.105:80/tf1jt/jt13d11102007.asf


 
 
d'ou:

Code :
  1. cat jt13d11102007.asf | grep Ref2 | sed -e 's/.* Ref2=\([^]*\).*/\1/' |tail -1
  2. sed: -e expression n°1, caractère 23: commande `s' inachevée
  3. tail: option invalide -- 1
  4. Pour en savoir davantage, faites: « tail --help ».


 
J'ai juste viré les guillemets vu qu'il n'y en a pas cette fois ci dans l'url mais ça marche pas terrible....lol

n°963096
Xavier_OM
Monarchiste régicide (fr quoi)
Posté le 11-10-2007 à 22:59:40  profilanswer
 

redvivi a écrit :

En faisant du cat, j'ai ça:

 
Code :
  1. :cat jt13d11102007.asf |grep Ref2
  2. Ref2=http://213.205.96.105:80/tf1jt/jt13d11102007.asf
 


d'ou:

Code :
  1. cat jt13d11102007.asf | grep Ref2 | sed -e 's/.* Ref2=\([^]*\).*/\1/' |tail -1
  2. sed: -e expression n°1, caractère 23: commande `s' inachevée
  3. tail: option invalide -- 1
  4. Pour en savoir davantage, faites: « tail --help ».
 

J'ai juste viré les guillemets vu qu'il n'y en a pas cette fois ci dans l'url mais ça marche pas terrible....lol

 

Tu as écrit [^] donc une négation de rien, il manque un caractère après le ^
Ce que tu veux toi c'est une chaîne de caractères continue, tu veux tout jusqu'au prochain espace.
Donc "not space" le plus de fois possible, et au premier espace on s'arrête.
Donc [^ ]

 

Ton [^] (sans rien après le ^) est lu comme ça par sed :
tu as ouvert un crochet
tu as écrit "pas crochet fermant"
mais pas refermé le crochet après...
Le truc c'est qu'on peut écrire tot[aeu] pour chercher tota tote et totu, donc ca ne l'a pas choqué de voir plusieurs caractères après le [. En fait il a vu :
[
puis
^]
puis tout un tas de truc... et arrivé à la fin ben il attend toujours son ] final ;)


Message édité par Xavier_OM le 11-10-2007 à 23:06:52

---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.
n°963769
redvivi
Posté le 14-10-2007 à 15:13:19  profilanswer
 

Merci infiniment ! finalement ce n'est pas si compliqué que ça...néanmoins, je suis confronté à un problème: je voudrais comparer dans un test le contenu des fichiers (pas par la taille des fichiers, mais le contenu en lui meme) au début, j'avais fait quelque chose de ce genre:
 

Code :
  1. if [ `cat rss-1939-Les-Guignols-de-linfo` = ``cat rss-1939-Les-Guignols-de-linfo.old` ]
  2. then
  3. ...


 
mais ça ne marchait pas trop, j'ai essayé avec  
 

Code :
  1. if [ rss-1939-Les-Guignols-de-linfo == rss-1939-Les-Guignols-de-linfo.old ]
  2. then
  3. ....

en accord avec cette doc: http://abs.traduc.org/abs-4.2.01-fr/ch07s03.html mais ça ne fonctionne pas non plus...j'ai oublié quelquechose ?

n°963792
Xavier_OM
Monarchiste régicide (fr quoi)
Posté le 14-10-2007 à 16:50:35  profilanswer
 

Je ne pense pas qu'un opérateur comme "==" puisse comparer le contenu de 2 fichiers. Regarde plutôt du côté des commandes "diff" ou "cmp" (ou "md5sum"...)
 


cmp -s $1 $2
if [ $? -eq 0 ]         # Test du code de sortie de la commande "cmp".
then
  echo "Le fichier $1 est identique au fichier $2."
else  
  echo "Le fichier $1 diffère du fichier $2."
fi


Message édité par Xavier_OM le 14-10-2007 à 16:53:23

---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.
n°963796
redvivi
Posté le 14-10-2007 à 16:58:58  profilanswer
 

en fait l'ideal ce serait une commande qui renvoie un code d'erreur pour l'utiliser directement avec if genre if <commande> file1 file2 then... sans passer par des grep etc...

n°963800
Xavier_OM
Monarchiste régicide (fr quoi)
Posté le 14-10-2007 à 17:12:14  profilanswer
 

C'est à dire ? Parce qu'on peut mettre plein de truc dans un if...


---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.
n°963801
redvivi
Posté le 14-10-2007 à 17:15:33  profilanswer
 

oui mais si je veux faire simple? :s ya pas une fonction simple de comparaison qui est directement exploitable sous la forme if <commande> <fichieràcomparer1> <fichieràcomparer2> then....?

n°963803
Xavier_OM
Monarchiste régicide (fr quoi)
Posté le 14-10-2007 à 17:17:25  profilanswer
 

if cmp -s file1 file2; then blabla; else blabla; fi
 
 [:spamafote]


---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.
mood
Publicité
Posté le   profilanswer
 


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

  [BASH] Extraire une URL d'un fichier (probleme avec grep)

 

Sujets relatifs
probleme plugin firefox[Mandriva 2007] Problème avec le serveur X
[WIFI] Problème d'installation de dongle usb Sagem Livebox sur Debian[Résolu] CpuSpeed sur Fedora 6@acer3023
[Shell ou Perl] extraire un fichier dans un zip(BASH) Ajouter des droits a un utilisateur
Probléme avec Winrar [résolu]probleme avec une compilation de noyau
comparer proprietaire fichier (UNIX AIX) 
Plus de sujets relatifs à : [BASH] Extraire une URL d'un fichier (probleme avec grep)


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