Supprimer toutes les lignes avant la ligne qui contient une Variable.
Résolu/Fermé
bob737
Messages postés
144
Date d'inscription
jeudi 24 septembre 2009
Statut
Membre
Dernière intervention
14 mars 2024
-
17 sept. 2021 à 15:42
bob737 Messages postés 144 Date d'inscription jeudi 24 septembre 2009 Statut Membre Dernière intervention 14 mars 2024 - 20 sept. 2021 à 17:29
bob737 Messages postés 144 Date d'inscription jeudi 24 septembre 2009 Statut Membre Dernière intervention 14 mars 2024 - 20 sept. 2021 à 17:29
A voir également:
- Supprimer toutes les lignes avant la ligne qui contient une Variable.
- Aller à la ligne excel - Guide
- Supprimer une page word - Guide
- Partage de photos en ligne - Guide
- Site de vente en ligne particulier - Guide
- Supprimer compte instagram - Guide
5 réponses
dubcek
Messages postés
18758
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
24 décembre 2024
5 623
18 sept. 2021 à 09:44
18 sept. 2021 à 09:44
hello
n=0 donc on n'imprime rien tant qu'il n'y a pas DATE35
quand on trouve DATE35, n=1 et on imprime
n=0 donc on n'imprime rien tant qu'il n'y a pas DATE35
quand on trouve DATE35, n=1 et on imprime
awk -F ',' -v var="$DATE35" -v n=0 '$3 ~ var {n=1}; n {print $0}' FIC
dubcek
Messages postés
18758
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
24 décembre 2024
5 623
20 sept. 2021 à 16:53
20 sept. 2021 à 16:53
imprimer veut dire on garde les lignes, par ex. en les redirigeant dans un nouveau fi chier
bob737
Messages postés
144
Date d'inscription
jeudi 24 septembre 2009
Statut
Membre
Dernière intervention
14 mars 2024
Modifié le 20 sept. 2021 à 16:48
Modifié le 20 sept. 2021 à 16:48
J'ai déjà trouvé ça pour supprimer les lignes dont le 3ème champs est contient la DATE35
Si le traitement est exécuté tous les jours , ça fera le boulot mais j'aurais préféré qu'il supprime aussi les lignes précédentes.
awk -F',' -v var="$DATE35" '$3 !~ var' FIC
Si le traitement est exécuté tous les jours , ça fera le boulot mais j'aurais préféré qu'il supprime aussi les lignes précédentes.
bob737
Messages postés
144
Date d'inscription
jeudi 24 septembre 2009
Statut
Membre
Dernière intervention
14 mars 2024
20 sept. 2021 à 14:22
20 sept. 2021 à 14:22
Bonjour,
Désolé, je n'ai pas compris la ligne.
Pourquoi on imprime? le but est de supprimer les lignes dont la date est antérieure à DATE35 sur le 3eme champ.
Merci.
Désolé, je n'ai pas compris la ligne.
Pourquoi on imprime? le but est de supprimer les lignes dont la date est antérieure à DATE35 sur le 3eme champ.
Merci.
mamiemando
Messages postés
33446
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
20 décembre 2024
7 812
Modifié le 20 sept. 2021 à 16:55
Modifié le 20 sept. 2021 à 16:55
Bonjour,
La solution que dubcek te propose suppose que les lignes sont triées par date croissante (selon le 3e champ) et part du principe que tu appliques la commande
Dans sa solution, dubcek te propose de maintenir une variable
Pour compléter la discussion, note que que cette discussion s'intéresse à un problème un peu plus général : extraire les lignes d'un log comprises dans un intervalle de temps. Tu peux donc facilement adapter les solutions proposées dans cette discussion à ton cas de figure.
Bonne chance
La solution que dubcek te propose suppose que les lignes sont triées par date croissante (selon le 3e champ) et part du principe que tu appliques la commande
awkà ce flux, qui fera office de filtre : les lignes conservées traverse
awket sont donc écrites, les autres sont ignorées et donc filtrées.
Dans sa solution, dubcek te propose de maintenir une variable
nqui vaut
0tant qu'on n'a pas rencontré DATE35, et qui est égale à
1quand on l'a rencontrée au moins une (cf
$3 ~ var {n=1};). Si
nvaut
0, alors on est en train de traiter une ligne dont la date est inférieure à
DATE35et donc on ne fait rien. Si
nvaut
1, on la réécrit, ce qui revient à traverser le filtre.
Pour compléter la discussion, note que que cette discussion s'intéresse à un problème un peu plus général : extraire les lignes d'un log comprises dans un intervalle de temps. Tu peux donc facilement adapter les solutions proposées dans cette discussion à ton cas de figure.
Bonne chance
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
bob737
Messages postés
144
Date d'inscription
jeudi 24 septembre 2009
Statut
Membre
Dernière intervention
14 mars 2024
20 sept. 2021 à 17:29
20 sept. 2021 à 17:29
Merci, c'est beaucoup plus clair.
Bonne journée à tous.
Bonne journée à tous.