URL: https://linuxfr.org/forums/programmation-shell/posts/supprimer-le-code-hexa-0a-dans-une-variable Title: supprimer le code hexa 0A dans une variable Authors: turlut Date: 2005年11月10日T12:33:38+01:00 Tags: Score: 0 Bonjour, je galère sur un problème qui doit être assez simple ..mais bon .. je suis débutant Voilà mon script de test .. Je dois récupérer dans une variable le resultat de la procédure Oracle rcdcurval ... Au lancement de la requête Oracle, je supprime l'affichage de l'entête et le rapport de l'exécution de cette requête, de manière à ne recupérer que la valeur de ma séquence (rcdcurval est censée etre comprise entre 0 et 365). Mon souci est que je récupère une variable sur 7 caractères avec des blancs. En faisait CURVALCOR=`echo -n "$CURVAL" | sed 's/ //g' ` j'arrive à supprimer des blancs .. mais il me reste un saut de ligne ... en hexa ça donne 0A 20 20 20 20 20 31 OA pour la variable CURVAL Ce numero de sequence doit me servir à renseigner un nom de fichier ... <nom_de_fichier>nnn.txt ou nnn est le numero de sequence égal à $CURVAL. Pouvez vous me dire comment supprimer le retour à la ligne que contient la variable $CURVAL ? Quel est la méthode pour enlever le saut de ligne .. ou comment avec un sed ... faire le s/??//g que vaut ?? Avec mes remerciements .. #!/bin/sh ################################# # Paramètres environnement ################################# # export LANG=fr_FR export LC_ALL="fr_FR" export LC_CTYPE=ISO-8859-1 # ################################# # Paramètres procédure ################################# # JOUR=$(date +%a)-$(date +%d)-$(date +%b)-$(date +%Y) user="RCD" psw="RCD" CURVAL= CURVALCOR= # ################################## # Fonction Sqlplus connexion ################################## # function exec_connex { if ( echo "$user/$psw@MABASE echo "whenever sqlerror exit 1" echo "1ドル" echo "exit" ) | sqlplus -s then return 0 else return 1 fi } £spaces£ £/spaces£ ################################## # Fonction proc sql ################################## # function exec_proc { CURVAL=$(( echo "set feedback off set heading off set numwidth 3 var result number execute rcdcurval(:result) print :result exit" ) | sqlplus -s $user/$psw 2>/dev/null) } ### FIN FONCTION PROCEDURE ##### # if exec_connex £spaces£ £/spaces£then exec_proc £spaces£ £/spaces£echo "valeur de CURVAL : ${CURVAL}" £spaces£ £/spaces£echo "longueur de CURVAL : ${#CURVAL}" else £spaces£ £/spaces£echo "" £spaces£ £/spaces£echo "=========================================" £spaces£ £/spaces£echo "= Anomalie connexion Sqlplus pour $user =" £spaces£ £/spaces£echo "=========================================" £spaces£ £/spaces£echo ""; £spaces£ £/spaces£exit; fi; ################################## # TEST RESULTAT ################################## # CURVALCOR=`echo -n "$CURVAL" | sed 's/ //g' ` echo "curvalcor vaut apres le sed : ${CURVALCOR}" echo "longueur de curvalcor : ${#CURVALCOR}" echo "" echo "${CURVAL}" echo "" CURVALCOR=`cut -b "${#CURVAL}" $CURVAL` echo "valeur modifiée par cut" echo "$CURVALCOR longueur ${#CURVALCOR}"