Copie de plusieurs lignes en fonction d'un partten avec sed

Fermé
GHISLINO Messages postés 214 Date d'inscription lundi 25 juillet 2011 Statut Membre Dernière intervention 8 décembre 2023 - Modifié par GHISLINO le 4/02/2013 à 19:02
dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 - 5 févr. 2013 à 12:36
Bonjour, tous



j 'ai un fichier de plusieurs lignes marqués par des dates et je désire récupérer les toutes les occurrences comprises entre la date d'aujourd'hui le 03/02/2013 à la date du lundi passé le 28/01/2013

dans le fichier les dates sont représentées comme l'exemple ci-dessous

j 'ai essayé avec sed mais ca ne marche pas bien

sed -n '/20130203*/,/20130128*/p' cal.csv > CAL_TEST.csv




fichier initial

20130203100942.2Z
20130203100942.2Z
20130202100942.2Z
20130202100942.2Z
20130202100942.2Z
20130201100942.2Z
20130201100942.2Z
20130131100942.2Z
20130130100942.2Z
20130129100942.2Z
20130129100942.2Z
20130128100942.2Z
20130128100942.2Z
etc ..

merci d'avance

A voir également:

6 réponses

Utilisateur anonyme
5 févr. 2013 à 07:35
salut,

les astérisques ne servent à rien.
0
GHISLINO Messages postés 214 Date d'inscription lundi 25 juillet 2011 Statut Membre Dernière intervention 8 décembre 2023
5 févr. 2013 à 09:23
bonjour

meme sans les asterisqes ca ne marche pas


sed -n '/20130203/,/20130128/p' cal.csv > CAL_TEST.csv 
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 417
5 févr. 2013 à 09:31
Salut,

sed n'est pas fait pour ça. Là il se contente d'afficher de la 1ère occurrence de la 1ère date à la 1ère occurrence rencontrée de la 2nd date.

Il te faut passer par un programme plus abouti, comme awk par exemple...
0
dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 5 621
Modifié par dubcek le 5/02/2013 à 10:41
hello
avec awk
awk '/20130203/{x=1} /20130128/ {while($0 ~ /20130128/){print; getline}; exit} x' fichier
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
GHISLINO Messages postés 214 Date d'inscription lundi 25 juillet 2011 Statut Membre Dernière intervention 8 décembre 2023
5 févr. 2013 à 11:26
bonjour dubcek

en fait je veux copier toutes les lignes comprises entre la dernière date du 20130203 et la dernière date du 20130128.

en plus claire toutes les occurrences entre le 20130203 et le 20130128 (une semaine en arrière)

comment puis joindre le fichier original ?

avec cette commande ne copie que quelques lignes seulement

awk '/20130203/{x=1} /20130128/ {while($0 ~ /20130128/){print; getline}; exit} x' fichier



merci d'avance
0
dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 5 621
5 févr. 2013 à 12:36
ça donne ça avec les données du post #1
 awk '/20130203/{x=1} /20130128/ {while($0 ~ /20130128/){print; getline}; exit} x' fichier
20130203100942.2Z
20130203100942.2Z
20130202100942.2Z
20130202100942.2Z
20130202100942.2Z
20130201100942.2Z
20130201100942.2Z
20130131100942.2Z
20130130100942.2Z
20130129100942.2Z
20130129100942.2Z
20130128100942.2Z
20130128100942.2Z
$ 
que faudrait-il avoir ?
0