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

GHISLINO Messages postés 234 Statut Membre -  
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   -
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
 
salut,

les astérisques ne servent à rien.
0
GHISLINO Messages postés 234 Statut Membre
 
bonjour

meme sans les asterisqes ca ne marche pas


sed -n '/20130203/,/20130128/p' cal.csv > CAL_TEST.csv 
0
zipe31 Messages postés 38797 Statut Contributeur 6 433
 
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 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
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 234 Statut Membre
 
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 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
ç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