#1 Le 26/07/2015, à 21:22
- breakolami
[Résolu] Supprimer des lignes dans un fichier texte
Salut à tous j'utilise un soft sur mon téléphone qui permet d'enregistrer en vidéo lorsqu'on roule en voiture (une dashcam)
Je m'en sers assez souvent pour diverses raisons et notamment professionnelles.
Le problème est que la vidéo générée est sous-titrée au moyen d'un fichier .srt.
Dans ce fichier il y a des lignes dont je n'ai pas besoin, voici un exemple de paragraphe:
1
00:00:59,856 --> 00:01:00,824
Heure: 26 juil. 2015 11:14:23
Type: Normal
Vitesse: 0.0
Lat.: 48.812109730491464
Lon.: 2.5128717737224762
00:01:00,824 --> 00:01:01,834
Heure: 26 juil. 2015 11:14:24
Type: Normal
Vitesse: 3.1
Lat.: 48.81208761414044
Lon.: 2.51288727778508923
00:01:01,834 --> 00:01:04,851
Heure: 26 juil. 2015 11:14:25
Type: Normal
Vitesse: 10.4
Lat.: 48.812049663496815
Lon.: 2.51289292095757144
00:01:04,851 --> 00:01:06,850
Heure: 26 juil. 2015 11:14:28
Type: Normal
Vitesse: 0.0
Lat.: 48.81204181564489
Lon.: 2.512736687976133
J'ai besoin de supprimer les lignes du début à la fin du fichier:
Type: Normal
Lat.: 48.812109730491464
Lon.: 2.512871773722476
De façon à garder uniquement ça
1
00:00:59,856 --> 00:01:00,824
Heure: 26 juil. 2015 11:14:23
Vitesse: 0.0
J'ai essayé avec sed
sed '/Type/d' mon_fichier.srt
Lorsque je tape ça dans ma konsole j'obtiens bien l'affichage du résultat sans les lignes contenant la chaine "Type"
Mais le fichier original n'est pas modifié, je ne sais pas comment générer un nouveau fichier modifié ni comment enlever les 3 lignes en une seule opération puis créer un nouveau fichier.
Si on pouvait m'aider ce serait cool, merci d'avance
Dernière modification par breakolami (Le 26/07/2015, à 22:09)
Kubuntu 24.04.1 sur MSI Katana 17, Intel i7 12ème génération, 1 Nvme M.2 P5 500Go, 1 Nvme M.2 P2 1000Go, 16Go de mémoire, Nvidia GeForce RTX 4060
https://www.youtube.com/@FrenchBusTransit
Hors ligne
#2 Le 26/07/2015, à 21:41
- nany
Re : [Résolu] Supprimer des lignes dans un fichier texte
Bonjour,
[…]
J'ai essayé avec sedsed '/Type/d' mon_fichier.srt
Tu y étais presque.
-i[SUFFIX], --in-place[=SUFFIX] edit files in place (makes backup if SUFFIX supplied)
Ce qui donne, avec ta commande, ceci :
sed -i '/Type/d' mon_fichier.srt
[…] ni comment enlever les 3 lignes en une seule opération […]
Il est possible de passer plusieurs commandes sed en une seule ligne, il faut alors les séparer d’un point-virgule.
Pour ton cas précis :
sed -i '/Type/d;/Lat/d;/Lon/d' mon_fichier.srt
En espérant que mes explications aient été assez claires.
Hors ligne
#3 Le 26/07/2015, à 21:48
- breakolami
Re : [Résolu] Supprimer des lignes dans un fichier texte
Formidable nany, merci beaucoup
Il me manquait le -i et les point-virgule
J'avais essayé de me plonger dans le man page de sed mais j'avoue que je nageais complètement
Merci encore
Kubuntu 24.04.1 sur MSI Katana 17, Intel i7 12ème génération, 1 Nvme M.2 P5 500Go, 1 Nvme M.2 P2 1000Go, 16Go de mémoire, Nvidia GeForce RTX 4060
https://www.youtube.com/@FrenchBusTransit
Hors ligne
#4 Le 31/07/2015, à 08:18
- k3c
Re : [Résolu] Supprimer des lignes dans un fichier texte
Je vais chipoter, mais
sed -i '/^Type/d;/^Lat/d;/^Lon/d' mon_fichier.srt
ne serait pas mieux (même si dans 99,99% des cas, ça ne fera aucune différence) ?
Debian 12 sur Thinkpad reconditionné
Hors ligne