Extraction sous linux (2)

Résolu
Utilisateur anonyme -  
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

voila , j'ai un extrait du texte suivant :

<TEXTE_ITEM NULL="TRUE"/>
<TEXTE_ITEM>Tranche ferme : 208.42 EUR (H.T.) Le lot de sauvetage et 269.88 EUR (H.T.) Le lot echelle.</TEXTE_ITEM>
<TEXTE_ITEM NULL="TRUE"/>
<TEXTE_ITEM>Date d'attribution du marche : 14 decembre 2007</TEXTE_ITEM>
<TEXTE_ITEM NULL="TRUE"/>
<TEXTE_ITEM>Date d'envoi du present avis a la publication : 18 decembre 2007.</TEXTE_ITEM>
<TEXTE_ITEM NULL="TRUE"/>
</TEXTE>
<NOTA/>
<QUAL/>
<LIEU>
<LIEU_ITEM>
<TYPE>DEP</TYPE>
FR721

<DESCR>ALLIER</DESCR>
<DEP>03</DEP>
<NOMPAYS>FRANCE</NOMPAYS>
</LIEU_ITEM>
</LIEU>
</FICHE>


et je veux extraire toutes les lignes qui commencent par <DEP> et finissent par </DEP> et qui contiennent un chiffre entre ces deux mot , c'est à dire les lignes : <DEP>chiffre</DEP> (exemple : <DEP>03</DEP> qui est en gras et soulignée dans mon texte plus haut) pour qu'à la fin je puisse récuperer les numeros seulement qui sont entre <DEP> et </DEP>. j'ai fai un grep comme suit :

less /chemin1/chemin2/nom_mon_fichier|grep "^<DEP>"

il m'affiche aucune ligne ou il ya DEP mais il m'affiche ceci:

"/chemin1/chemin2/nom_mon_fichier" may be a binary file. See it anyway?


SVP, quelqu'un a une réponses. merci d'avance pour votre réponse.
A voir également:

3 réponses

jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
Salut,

Le problème vient du fait que la commande "less" interprète ton fichier comme étant un fichier contenant des valeurs binaires, et non des caractères "ascii", ce qui pourrait occasionner un affichage quelque peu bizarre.

Par contre concernant la commande, celle-ci serait peut être plus appropriée :
sed -n '\#^<DEP>[0-9]\+</DEP>#p' /chemin1/chemin2/nom_mon_fichier
;-))
0
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
Et que renvoie :
cat /chemin1/chemin2/nom_mon_fichier 
0
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
[tmpfs]$ cat tata
<TEXTE_ITEM NULL="TRUE"/>
<TEXTE_ITEM>Tranche ferme : 208.42 EUR (H.T.) Le lot de sauvetage et 269.88 EUR (H.T.) Le lot echelle.</TEXTE_ITEM>
<TEXTE_ITEM NULL="TRUE"/>
<TEXTE_ITEM>Date d'attribution du marche : 14 decembre 2007</TEXTE_ITEM>
<TEXTE_ITEM NULL="TRUE"/>
<TEXTE_ITEM>Date d'envoi du present avis a la publication : 18 decembre 2007.</TEXTE_ITEM>
<TEXTE_ITEM NULL="TRUE"/>
</TEXTE>
<NOTA/>
<QUAL/>
<LIEU>
<LIEU_ITEM>
<TYPE>DEP</TYPE>

FR721


<DESCR>ALLIER</DESCR>
<DEP>03</DEP>
<NOMPAYS>FRANCE</NOMPAYS>
</LIEU_ITEM>
</LIEU>
</FICHE>

[tmpfs]$ zip tata.gz tata
  adding: tata (deflated 49%)

[tmpfs]$ zcat tata.gz
<TEXTE_ITEM NULL="TRUE"/>
<TEXTE_ITEM>Tranche ferme : 208.42 EUR (H.T.) Le lot de sauvetage et 269.88 EUR (H.T.) Le lot echelle.</TEXTE_ITEM>
<TEXTE_ITEM NULL="TRUE"/>
<TEXTE_ITEM>Date d'attribution du marche : 14 decembre 2007</TEXTE_ITEM>
<TEXTE_ITEM NULL="TRUE"/>
<TEXTE_ITEM>Date d'envoi du present avis a la publication : 18 decembre 2007.</TEXTE_ITEM>
<TEXTE_ITEM NULL="TRUE"/>
</TEXTE>
<NOTA/>
<QUAL/>
<LIEU>
<LIEU_ITEM>
<TYPE>DEP</TYPE>

FR721


<DESCR>ALLIER</DESCR>
<DEP>03</DEP>
<NOMPAYS>FRANCE</NOMPAYS>
</LIEU_ITEM>
</LIEU>
</FICHE>

[tmpfs]$ zcat tata.gz | sed -n '\#^<DEP>[0-9]\+</DEP>#p'
<DEP>03</DEP>

[tmpfs]$ 
;-))
0