Extraire une partie d'un fichier texte

Extraire une partie d'un fichier texte - Shell/Batch - Programmation

Marsh Posté le 11-10-2007 à 11:37:47    

Bonjour à tous,
 
J'aimerais écrire un programme en shell, pour parcourir un fichier texte ligne par ligne. Dans la ligne je cherche une chaîne de caractères spécifique. Des que je trouve cette chaîne, je voudrais copier le reste du fichier (en dessous de cette ligne) dans un autre fichier.
J'arrive bien à parcourir mon fichier de base avec un while read line, ou bien avec awk mais je n'arrive pas tester la ligne lue pour voir si elle contient bien la chaîne de caractères recherchée.  :cry:  
 
Est-ce que quelqu'un aurait une idée ?
 
merci d'avance pour vos réponses.
 
Phil

Reply

Marsh Posté le 11-10-2007 à 11:37:47   

Reply

Marsh Posté le 11-10-2007 à 12:35:46    

awk '/pattern/,0{print}'


Où <pattern> est une regexp.
Edit : et puis si tu veux simplement tester ta ligne sans utiliser une regexp, et bien tu fais la même chose avec un test au lieux d'une regexp :

awk '$0=="ma ligne",0 { print }'


Message édité par matafan le 11-10-2007 à 12:37:54
Reply

Marsh Posté le 11-10-2007 à 13:44:13    

Merci beaucoup, je vais essayer ça tout de suite.

Reply

Marsh Posté le 11-10-2007 à 15:31:50    

Merci ça fonctionne. J'ai simplement fait des modifications en fonction de mon fichier de données car toutes les lignes ne sont pas de la même forme et les séparateurs diffèrent.
Voila ma commande au final :  
 
awk -F: '$2 ~ /.*ma ligne/,0 { print }'  
 
Encore merci :)

Reply

Marsh Posté le 12-10-2007 à 09:31:09    

Le ".*" ne sert à rien.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed