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 26/07/2015, à 22: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.512871773722476

2
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.5128872777850892

3
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.5128929209575714

4
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, à 23:09)


Kubuntu 23.10 sur MSI Katana 17, Intel i7 12ème génération, 1 Nvme M.2 P5 500Go, 1 Nvme M.2 P2 500Go, 16Go de mémoire, Nvidia GeForce RTX 4060
https://www.youtube.com/@ChristopheBrand

En ligne

#2 Le 26/07/2015, à 22:41

nany

Re : [Résolu] Supprimer des lignes dans un fichier texte

Bonjour,


breakolami a écrit :

[…]
J'ai essayé avec sed

sed '/Type/d' mon_fichier.srt

Tu y étais presque.

man sed a écrit :
       -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. wink

Hors ligne

#3 Le 26/07/2015, à 22: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 23.10 sur MSI Katana 17, Intel i7 12ème génération, 1 Nvme M.2 P5 500Go, 1 Nvme M.2 P2 500Go, 16Go de mémoire, Nvidia GeForce RTX 4060
https://www.youtube.com/@ChristopheBrand

En ligne

#4 Le 31/07/2015, à 09: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) ?


Archlinux sur Xiaomi Air 13

Hors ligne