Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 08/03/2014, à 19:51

Link_Octree

[Bash] Remplacer une ligne par une autre

Bonjour,

J'ai en entrée un fichier txt avec certaines lignes qui sont déja mises en forme dans la syntaxe qui m'intéresse, celle-ci:

2ème journée 	18/08/2013 - 14:00 	AS Monaco FC 	4 - 1 	Montpellier Hérault SC 	2e 	Vidéo
3ème journée 	23/08/2013 - 20:30 	AS Monaco FC 	0 - 0 	Toulouse FC 	2e 	Vidéo

D'autres lignes sont par contre pollués de données qui ne m'intéressent pas, comme ceci:

Les rencontres de AS Monaco FC - août 2013 1ère journée 	10/08/2013 - 21:00 	Girondins de Bordeaux 	0 - 2 	AS Monaco FC 	4e 	Vidéo
Les rencontres de AS Monaco FC - septembre 2013 4ème journée 	01/09/2013 - 21:00 	Olympique de Marseille 	1 - 2 	AS Monaco FC 	1er 	Vidéo

Ce que je voudrais faire, c'est uniformiser le tout, et faire en sorte que toutes les lignes soient dans la mise en forme voulue.

Je sais comment détecter les lignes avec la mise en forme inadaptée (grep "Les rencontres de AS Monaco FC"), je sais également supprimer les données superflues (cut -d ' ' -f10-50) mais je ne vois pas comment écraser les données précédements pollués par celles avec la mise en forme voulue (j'ai déja utilisé sed, mais là je vois pas comment faire).

Quelqu'un pourrait-il me donner un coup de main là dessus ? Je privilégie un code compréhensible me permettant de bien comprendre la chose pour l'adapter à d'autres scripts smile

Pour info le fichier en entree: http://pastebin.com/7b5vpKmf

Merci d'avance !

Dernière modification par Link_Octree (Le 08/03/2014, à 19:53)

Hors ligne

#2 Le 08/03/2014, à 20:18

pingouinux

Re : [Bash] Remplacer une ligne par une autre

Bonsoir,
Pour tester :

sed -r '/^Les rencontres de AS Monaco FC /s/(\S+\s+){9}(.*)/\2/' fichier.txt

Pour modifier le fichier directement (en faire une copie auparavant, au cas où) :

sed -ri '/^Les rencontres de AS Monaco FC /s/(\S+\s+){9}(.*)/\2/' fichier.txt

Édité : Et même plus simple

sed -r '/^Les rencontres de AS Monaco FC /s/(\S+\s+){9}//' fichier.txt

Ajouté : Ou bien

sed -r 's/^Les rencontres de AS Monaco FC (\S+\s+){3}//' fichier.txt

Dernière modification par pingouinux (Le 09/03/2014, à 04:28)

Hors ligne