#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
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