Extraire ligne à H-1
Résolu
bob737
Messages postés
144
Date d'inscription
Statut
Membre
Dernière intervention
-
dubcek Messages postés 18789 Date d'inscription Statut Contributeur Dernière intervention -
dubcek Messages postés 18789 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
J'ai un fichier de résultat contenant 2000 lignes (limit max): Chaque ligne correspond à un résultat de traitement.
Le format d'une ligne est le suivant:
rubrik00,VEGA,2021-09-16T06:32:57.327Z,2021-09-16T06:34:45.249Z,slbcfrbw2070,Success,Archival,VirtualMachine:::5736c60d-3298-4711-abf4-5f18885bb903-vm-122711,VmwareVirtualMachine,sapifrdxcvc04.fr.intranet,SLA_BENCH,2021-09-16T05:32:52.023Z,2021-09-16T07:32:57.327Z,false,LOCAL,0,555736582,96636764160,15627698,107922,RVMHM193S001062,0,false,7,2021-03-15T13:57:39.475Z,vm-122711,SIR-LIN2-DXC,poweredOn,2019-02-01T16:18:15.187Z,100.83.1.18,Unregistered,Red Hat Enterprise Linux 7 (64-bit),false,true,false,FAILED,sapifrdxcvc04.fr.intranet/SIRIUS/vm/VM_CLOUD/Linux
Le 3eme champs est le début du traitement.
Comment extraire toutes les lignes du fichier dont dont le 3eme champ est entre entre H-1 et H ou mm-30 et mm
Exemple, si je lance le script pour extraire les lignes à 3:05, j'aimerais avoir les lignes strictement entre 2H et 3H
L'objectif est de ne pas avoir de doublons après chaque extraction.
A noter que chaque chaque ligne est le résultat de l'API suivante:
https://$IP/api/v1/job_monitoring?limit=1000&job_event_status=Success,SuccessfulWithWarnings,Failure,Canceled&job_type=Backup&sort_by=EndTime&sort_order=desc" | jq -r '.jobMonitoringInfoList[] | "\(.startTime),\(.endTime),\(.objectName)....." ' . l'API ne possède pas de begindate.
J'essaie de faire quelque chose avec date --date "$DATE 1 hours ago" +%s mais ça se complique ensuite pour l'extraction.
Merci de votre aide.
J'ai un fichier de résultat contenant 2000 lignes (limit max): Chaque ligne correspond à un résultat de traitement.
Le format d'une ligne est le suivant:
rubrik00,VEGA,2021-09-16T06:32:57.327Z,2021-09-16T06:34:45.249Z,slbcfrbw2070,Success,Archival,VirtualMachine:::5736c60d-3298-4711-abf4-5f18885bb903-vm-122711,VmwareVirtualMachine,sapifrdxcvc04.fr.intranet,SLA_BENCH,2021-09-16T05:32:52.023Z,2021-09-16T07:32:57.327Z,false,LOCAL,0,555736582,96636764160,15627698,107922,RVMHM193S001062,0,false,7,2021-03-15T13:57:39.475Z,vm-122711,SIR-LIN2-DXC,poweredOn,2019-02-01T16:18:15.187Z,100.83.1.18,Unregistered,Red Hat Enterprise Linux 7 (64-bit),false,true,false,FAILED,sapifrdxcvc04.fr.intranet/SIRIUS/vm/VM_CLOUD/Linux
Le 3eme champs est le début du traitement.
Comment extraire toutes les lignes du fichier dont dont le 3eme champ est entre entre H-1 et H ou mm-30 et mm
Exemple, si je lance le script pour extraire les lignes à 3:05, j'aimerais avoir les lignes strictement entre 2H et 3H
L'objectif est de ne pas avoir de doublons après chaque extraction.
A noter que chaque chaque ligne est le résultat de l'API suivante:
https://$IP/api/v1/job_monitoring?limit=1000&job_event_status=Success,SuccessfulWithWarnings,Failure,Canceled&job_type=Backup&sort_by=EndTime&sort_order=desc" | jq -r '.jobMonitoringInfoList[] | "\(.startTime),\(.endTime),\(.objectName)....." ' . l'API ne possède pas de begindate.
J'essaie de faire quelque chose avec date --date "$DATE 1 hours ago" +%s mais ça se complique ensuite pour l'extraction.
Merci de votre aide.
Configuration: Windows / Chrome 92.0.4515.131
A voir également:
- Extraire ligne à H-1
- Extraire une video youtube - Guide
- Partager photos en ligne - Guide
- Extraire le son d'une vidéo - Guide
- Aller à la ligne excel - Guide
- Mètre en ligne - Guide
4 réponses
donc le champ 3 est
j'ai une date AAAA-MM-JJ et un temps HH:MM:SS
que faut-il tester, les champs 3 entre 6H et 6H 59. par ex. ?
$ awk -F "," '{print $3}' fichier
2021-09-16T06:32:57.327Z
j'ai une date AAAA-MM-JJ et un temps HH:MM:SS
que faut-il tester, les champs 3 entre 6H et 6H 59. par ex. ?
De mon côté, j'ai fait une boucle sur le fichier et je teste le 3eme champ. je transforme en seconde et je teste par rapport à la même date avec 10 minutes de moins en seconde.
DATE10MM=`date --date "10 minutes ago" +%s`
for LINE in `cat FICHIER2000LIGNES`
do
STARTTIME=`echo $LINE | awk -F',' '{ print $3 }'`
STARTTIMESS=`date --date "$STARTTIME" +%s`
if (( "$STARTTIMESS" > "$DATE10MM" ))
then
==> j'édite ma ligne
fi
done
ça semble fonctionner. Qu'en pensez-vous?