Executer une commande venant d'un fichier de données
delfel
Messages postés
4
Date d'inscription
Statut
Membre
Dernière intervention
-
delfel -
delfel -
Bonjour,
je vous expose mon problème, déjà je suis débutante en shell
j'ai un fichier de données de plusieurs lignes, chaque lignes a elle même plusieurs données, dont une donnée date (variable), et pour éviter de devoir toucher a ce fichier j'ai inscrit les dates de cette façon exemple: date +%d/%m/%Y
mon shell récupère toutes les données mais lorsque je récupère mon champs date il me le laisse en forme du fichier de donnée,
je ne sais pas comment faire en sorte qui prenne un format JJ/MM/AAAA lors de la recirculation de l'information
si vous avez une piste qui pourrais m'aider
merci
je vous expose mon problème, déjà je suis débutante en shell
j'ai un fichier de données de plusieurs lignes, chaque lignes a elle même plusieurs données, dont une donnée date (variable), et pour éviter de devoir toucher a ce fichier j'ai inscrit les dates de cette façon exemple: date +%d/%m/%Y
mon shell récupère toutes les données mais lorsque je récupère mon champs date il me le laisse en forme du fichier de donnée,
je ne sais pas comment faire en sorte qui prenne un format JJ/MM/AAAA lors de la recirculation de l'information
si vous avez une piste qui pourrais m'aider
merci
A voir également:
- Executer une commande venant d'un fichier de données
- Fichier bin - Guide
- Invite de commande - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier rar - Guide
7 réponses
hello
$ awk 'BEGIN {OFS=FS=";"} {$3 | getline $3; print}' fichier
1 2 4 5 ;TRAITEMENT;241013;TRAITEMENT.our;TRAITEMENT.err;
1 3 4 5 ;TRAITEMENT2;2013;TRAITEMENT2.out;TRAITEMENT2.err;
$
$ awk 'BEGIN {OFS=FS=";"} {$3 | getline $3; printf "NOM: %s\nPARA: %s\nSORTIE: %s\nERREUR: %s\n",$2, $3, $4, $5}' fichier
NOM: TRAITEMENT
PARA: 241013
SORTIE: TRAITEMENT.our
ERREUR: TRAITEMENT.err
NOM: TRAITEMENT2
PARA: 2013
SORTIE: TRAITEMENT2.out
ERREUR: TRAITEMENT2.err
$
Salut,
c'est quelque chose comme ça que tu veux faire ?
c'est quelque chose comme ça que tu veux faire ?
#!/bin/bash
datas=("5 janvier 2014" "date +%d/%m/%Y" "03/11/2013")
for current in "${datas[@]}"
do
if $(echo $current | grep %)
then
datas[$n]=$($current)
fi
n=$[$n+1]
done
echo "${datas[@]}"
Bonjour Flachy Joe
en faite mon fichier de données ressemble a ça (sachant que dans l'avenir on ne devra rien toucher de ce fichier)
1 2 4 5 ;TRAITEMENT;date +%d%m%y;TRAITEMENT.our;TRAITEMENT.err;
1 3 4 5 ;TRAITEMENT2;date +%Y;TRAITEMENT2.out;TRAITEMENT2.err;
........
il fera environ 25 lignes avec 10 arguments chacune
j'ai mon Shell qui me permet la récupération et la découpe des données pour faire un nouveau fichier de données qui lui ressemble a ça
NOM : TRAITEMENT
PARA : 24/10/2013
SORTIE : TRAITEMENT.out
ERREUR : TRAITEMENT.err
actuellement je récupère le champs tel qu'il est dans mon fichier de donnée 1er, je sais pas comment je pourrais le convertir en date ou année
chaque ligne peu avoir 1 paramètre ou plusieurs paramètre et pas forcement des dates
merci
en faite mon fichier de données ressemble a ça (sachant que dans l'avenir on ne devra rien toucher de ce fichier)
1 2 4 5 ;TRAITEMENT;date +%d%m%y;TRAITEMENT.our;TRAITEMENT.err;
1 3 4 5 ;TRAITEMENT2;date +%Y;TRAITEMENT2.out;TRAITEMENT2.err;
........
il fera environ 25 lignes avec 10 arguments chacune
j'ai mon Shell qui me permet la récupération et la découpe des données pour faire un nouveau fichier de données qui lui ressemble a ça
NOM : TRAITEMENT
PARA : 24/10/2013
SORTIE : TRAITEMENT.out
ERREUR : TRAITEMENT.err
actuellement je récupère le champs tel qu'il est dans mon fichier de donnée 1er, je sais pas comment je pourrais le convertir en date ou année
chaque ligne peu avoir 1 paramètre ou plusieurs paramètre et pas forcement des dates
merci
Salut,
$ cat plop
1 2 4 5 ;TRAITEMENT;date +%d/%m/%y;TRAITEMENT.our;TRAITEMENT.err;
1 3 4 5 ;TRAITEMENT2;date +%Y;TRAITEMENT2.out;TRAITEMENT2.err;
1 4 4 5 ;TRAITEMENT2;;TRAITEMENT2.out;TRAITEMENT2.err;
$ cat foo.sh
#! /bin/bash
while read line
do
var=$(grep -o 'date[^;]*' <<<${line})
sed 's#date[^;]*#'"$(${var})"'#' <<<"${line}"
done < plop
$ ./foo.sh
1 2 4 5 ;TRAITEMENT;24/10/13;TRAITEMENT.our;TRAITEMENT.err;
1 3 4 5 ;TRAITEMENT2;2013;TRAITEMENT2.out;TRAITEMENT2.err;
1 4 4 5 ;TRAITEMENT2;;TRAITEMENT2.out;TRAITEMENT2.err;
$
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question