KSH extraction de variable dans un fichier
Résolu/Fermé
A voir également:
- KSH extraction de variable dans un fichier
- Comment réduire la taille d'un fichier - Guide
- Fichier rar - Guide
- Comment ouvrir un fichier epub ? - Guide
- Ouvrir un fichier .bin - Guide
- Impossible de supprimer un fichier - Guide
6 réponses
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 422
14 mai 2012 à 12:05
14 mai 2012 à 12:05
Salut,
Rien compris ;-((
Il doit ressembler à quoi ton fichier final par rapport à ton fichier original ?
Rien compris ;-((
Il doit ressembler à quoi ton fichier final par rapport à ton fichier original ?
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 422
14 mai 2012 à 12:16
14 mai 2012 à 12:16
A tout hasard, c'est ça que tu veux ?
$ cat plop return ${EXPORT_RETOUR_ERREUR} if [ ${status} -ne ${EXPORT_RETOUR_OK} && ${status} -ne ${EXPORT_REP} ]] ; then return ${EXPORT_ERREUR} name="${EXPORT_COND_PREFIX}???${CLE_IMS}*" commande="${EXPORT_DELETECOND_COMMAND} -DELETE ${name} ${mmdd}" if [[ ${status} -ne ${EXPORT_RETOUR_OK} && ${status} -ne ${EXPORT_RETOUR_ERREUR} ]] ; then return ${EXPORT_RETOUR_ERREUR} return ${EXPORT_RETOUR_OK} return ${EXPORT_RETOUR_ERREUR} if [ ${status} -ne ${EXPORT_RETOUR_OK} ] ; then $ egrep -o '\$\{EXPORT[^}]*\}' plop | sort -u ${EXPORT_COND_PREFIX} ${EXPORT_DELETECOND_COMMAND} ${EXPORT_ERREUR} ${EXPORT_REP} ${EXPORT_RETOUR_ERREUR} ${EXPORT_RETOUR_OK}
Oui c'est tout a fait ca ... en clair j'ai n fichiers au depart contenant des lignes avec des variables ${EXPORT_xxxxx} le but du jeu c'est de creer une sorte de dictionnaire recensant toutes les variables ${EXPORT_xxxxx} utilisées dans les differents fichiers. Donc merci beaucoup pour ta rapidité .... je galere depuis ce matin car avant de demander j'ai essayé plusieurs solutions fournie sur Internet ... donc grand merci
Caro
Caro
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 422
14 mai 2012 à 13:48
14 mai 2012 à 13:48
Essaye avec "sed" alors :
sed -n 's/.*\(\${EXPORT[^}]*}\).*/\1/gp' plop | sort -u
Salut,
merci pour la reponse mais l'option -o ne marche pas vaec le egrep
egrep: illegal option -- o
usage: egrep [ -bchilnsv ] [ -e exp ] [ -f file ] [ strings ] [ file ] ...
En entree mon fichier contient n lignes :(c'est en fait le resultat d'un grep fait sur plusieurs fichiers : ce grep portant sur la variable EXPORT)
return ${EXPORT_RETOUR_ERREUR}
if [ ${status} -ne ${EXPORT_RETOUR_OK} ] ; then
return ${EXPORT_RETOUR_ERREUR}
name="${EXPORT_COND_PREFIX}???${CLE_IMS}*"
commande="${EXPORT_DELETECOND_COMMAND} -DELETE ${name}"
if [[ ${status} -ne ${EXPORT_RETOUR_OK} && ${status} -ne ${EXPORT_RETOUR_ERREUR} ]] ; then
return ${EXPORT_RETOUR_ERREUR}
return ${EXPORT_RETOUR_OK}
return ${EXPORT_RETOUR_ERREUR}
if [ ${status} -ne ${EXPORT_RETOUR_OK} ] ; then
return ${EXPORT_RETOUR_ERREUR}
${EXPORT_RMDIR} "${rep_prod}"
if [ ${status} -ne ${EXPORT_RETOUR_OK} ] ; then
return ${EXPORT_RETOUR_ERREUR}
return ${EXPORT_RETOUR_OK}
return ${EXPORT_RETOUR_ERREUR}
fin ${EXPORT_NUMJOB_HOLD_JOBS_OK}| \
return${EXPORT_NUMJOB_DOCID_COLLECTION}| \
Info ${EXPORT_NUMJOB_PO_COLLECTION}| \
return ${EXPORT_NUMJOB_END_PRODUCTION})
groupe=${EXPORT_GROUPE_PREFIX}-${DATE_REVISION}${EXPORT_ACPROGRAM}
${EXPORT_NUMJOB_PO_VALIDATION}| \
${EXPORT_NUMJOB_CUSTO_INITIALISATION}| \
${EXPORT_NUMJOB_DATA_RECEPTION}| \
${EXPORT_NUMJOB_PUB_GENERATION}| \
Ajoute " -do ${EXPORT_DESTINATAIRE_COURRIER} V "${EXPORT_TAG}
commande="java -jar ${EXPORT_AGT_NAME} -t ${EXPORT_AGT} "
Apres tri et extraction des variables de type ${EXPORT_xxxx} Mon fichier en sortie doit avoir cette tête
${EXPORT_NUMJOB_CUSTO_INITIALISATION}${EXPORT_NUMJOB_DATA_RECEPTION}
${EXPORT_NUMJOB_DOCID_COLLECTION}
${EXPORT_NUMJOB_END_PRODUCTION}
${EXPORT_DESTINATAIRE_COURRIER}
${EXPORT_NUMJOB_HOLD_JOBS_OK}
${EXPORT_NUMJOB_PO_COLLECTION}
${EXPORT_NUMJOB_PO_VALIDATION}
${EXPORT_NUMJOB_PUB_GENERATION}
${EXPORT_RMDIR}
.........
Comme le egrep avec l'option -o ne marche pas chez moi j'ai essaye la commande sans cette option et bref ca ne fait toujours pas ce que je veux
Grand merci a ceux qui ont une idée ....
merci pour la reponse mais l'option -o ne marche pas vaec le egrep
egrep: illegal option -- o
usage: egrep [ -bchilnsv ] [ -e exp ] [ -f file ] [ strings ] [ file ] ...
En entree mon fichier contient n lignes :(c'est en fait le resultat d'un grep fait sur plusieurs fichiers : ce grep portant sur la variable EXPORT)
return ${EXPORT_RETOUR_ERREUR}
if [ ${status} -ne ${EXPORT_RETOUR_OK} ] ; then
return ${EXPORT_RETOUR_ERREUR}
name="${EXPORT_COND_PREFIX}???${CLE_IMS}*"
commande="${EXPORT_DELETECOND_COMMAND} -DELETE ${name}"
if [[ ${status} -ne ${EXPORT_RETOUR_OK} && ${status} -ne ${EXPORT_RETOUR_ERREUR} ]] ; then
return ${EXPORT_RETOUR_ERREUR}
return ${EXPORT_RETOUR_OK}
return ${EXPORT_RETOUR_ERREUR}
if [ ${status} -ne ${EXPORT_RETOUR_OK} ] ; then
return ${EXPORT_RETOUR_ERREUR}
${EXPORT_RMDIR} "${rep_prod}"
if [ ${status} -ne ${EXPORT_RETOUR_OK} ] ; then
return ${EXPORT_RETOUR_ERREUR}
return ${EXPORT_RETOUR_OK}
return ${EXPORT_RETOUR_ERREUR}
fin ${EXPORT_NUMJOB_HOLD_JOBS_OK}| \
return${EXPORT_NUMJOB_DOCID_COLLECTION}| \
Info ${EXPORT_NUMJOB_PO_COLLECTION}| \
return ${EXPORT_NUMJOB_END_PRODUCTION})
groupe=${EXPORT_GROUPE_PREFIX}-${DATE_REVISION}${EXPORT_ACPROGRAM}
${EXPORT_NUMJOB_PO_VALIDATION}| \
${EXPORT_NUMJOB_CUSTO_INITIALISATION}| \
${EXPORT_NUMJOB_DATA_RECEPTION}| \
${EXPORT_NUMJOB_PUB_GENERATION}| \
Ajoute " -do ${EXPORT_DESTINATAIRE_COURRIER} V "${EXPORT_TAG}
commande="java -jar ${EXPORT_AGT_NAME} -t ${EXPORT_AGT} "
Apres tri et extraction des variables de type ${EXPORT_xxxx} Mon fichier en sortie doit avoir cette tête
${EXPORT_NUMJOB_CUSTO_INITIALISATION}${EXPORT_NUMJOB_DATA_RECEPTION}
${EXPORT_NUMJOB_DOCID_COLLECTION}
${EXPORT_NUMJOB_END_PRODUCTION}
${EXPORT_DESTINATAIRE_COURRIER}
${EXPORT_NUMJOB_HOLD_JOBS_OK}
${EXPORT_NUMJOB_PO_COLLECTION}
${EXPORT_NUMJOB_PO_VALIDATION}
${EXPORT_NUMJOB_PUB_GENERATION}
${EXPORT_RMDIR}
.........
Comme le egrep avec l'option -o ne marche pas chez moi j'ai essaye la commande sans cette option et bref ca ne fait toujours pas ce que je veux
Grand merci a ceux qui ont une idée ....
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 422
14 mai 2012 à 13:55
14 mai 2012 à 13:55
Normal sans cette option le résultat ne peut être le même ;-(
Voir la proposition avec sed : https://forums.commentcamarche.net/forum/affich-25169753-ksh-extraction-de-variable-dans-un-fichier#5
Voir la proposition avec sed : https://forums.commentcamarche.net/forum/affich-25169753-ksh-extraction-de-variable-dans-un-fichier#5
Merci cette solution marche mais par sur tout mon fichier je viens d'isoler les lignes pour lesquelles en sortie je n'ai pas ma variable EXPORT_ traitée :
Voila mon fichier
${EXPORT_NUMJOB_PUB_GENERATION}|
Ajoute -dot ${EXPORT_DEST_COURRIER} V \${EXPORT_TAG_COURRIER}
java -jar ${EXPORT_AGT_NAME} -t ${EXPORT_FOR_AGT} ${PARAM_AGT_LOG}
java -jar ${EXPORT_AGT_NAME} -t ${EXPORT_AGT_DIR} ${EXPORT_CMD_SPEC}
et le resultat :
${EXPORT_CMD_SPEC}
${EXPORT_FOR_AGT}
${EXPORT_NUMJOB_PUB_GENERATION}
${EXPORT_TAG_COURRIER}
il manque en sortie :
${EXPORT_DEST_COURRIER}
${EXPORT_AGT_NAME}
${EXPORT_AGT_DIR}
je cherche de mon coté ... merci en tout cas
Voila mon fichier
${EXPORT_NUMJOB_PUB_GENERATION}|
Ajoute -dot ${EXPORT_DEST_COURRIER} V \${EXPORT_TAG_COURRIER}
java -jar ${EXPORT_AGT_NAME} -t ${EXPORT_FOR_AGT} ${PARAM_AGT_LOG}
java -jar ${EXPORT_AGT_NAME} -t ${EXPORT_AGT_DIR} ${EXPORT_CMD_SPEC}
et le resultat :
${EXPORT_CMD_SPEC}
${EXPORT_FOR_AGT}
${EXPORT_NUMJOB_PUB_GENERATION}
${EXPORT_TAG_COURRIER}
il manque en sortie :
${EXPORT_DEST_COURRIER}
${EXPORT_AGT_NAME}
${EXPORT_AGT_DIR}
je cherche de mon coté ... merci en tout cas
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 422
14 mai 2012 à 14:39
14 mai 2012 à 14:39
Effectivement ;-((
;-))
$ cat brol ${EXPORT_NUMJOB_PUB_GENERATION}| Ajoute -dot ${EXPORT_DEST_COURRIER} V \${EXPORT_TAG_COURRIER} java -jar ${EXPORT_AGT_NAME} -t ${EXPORT_FOR_AGT} ${PARAM_AGT_LOG} java -jar ${EXPORT_AGT_NAME} -t ${EXPORT_AGT_DIR} ${EXPORT_CMD_SPEC} $ sed -n 's/[^$]*\(${EXPORT[^}]*}\)[^$]*/\1\n/gp' brol | sort -u ${EXPORT_AGT_DIR} ${EXPORT_AGT_NAME} ${EXPORT_CMD_SPEC} ${EXPORT_DEST_COURRIER} ${EXPORT_FOR_AGT} ${EXPORT_NUMJOB_PUB_GENERATION} ${EXPORT_TAG_COURRIER} ${PARAM_AGT_LOG} $
;-))
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Merci beaucoup mais Bon moi je dois avoir un environnement pourri parce que ça ne marche vraiment pas :
J'ai le mm fichier de depart que toi et apres le sed j'ai le resultat suivant :
${EXPORT_AGT_NAME}n$${EXPORT_CMD_SPEC}n
${EXPORT_AGT_NAME}n${EXPORT_FOR_AGT} ${PARAM_AGT_LOG}
${EXPORT_DEST_COURRIER}n${EXPORT_TAG_COURRIER}
${EXPORT_NUMJOB_PUB_GENERATION}n
... je suppose que les n c'est du retour chariot !!!
J'ai le mm fichier de depart que toi et apres le sed j'ai le resultat suivant :
${EXPORT_AGT_NAME}n$${EXPORT_CMD_SPEC}n
${EXPORT_AGT_NAME}n${EXPORT_FOR_AGT} ${PARAM_AGT_LOG}
${EXPORT_DEST_COURRIER}n${EXPORT_TAG_COURRIER}
${EXPORT_NUMJOB_PUB_GENERATION}n
... je suppose que les n c'est du retour chariot !!!
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 422
14 mai 2012 à 15:00
14 mai 2012 à 15:00
Essaie de doubler la protection sur le "\\n"