[KSH][RESOLU]Enlever $ situé en fin de chaine s'il existe [HELP]

Enlever $ situé en fin de chaine s'il existe [HELP] [KSH][RESOLU] - Shell/Batch - Programmation

Marsh Posté le 10-12-2009 à 09:44:10    

Et voila le script complet qui marche merci a ceux qui m'ont aidé :)
 
#!/bin/ksh
 
clear
IsJob=0
IsApp=0
IsCyclique=0
IsDemande=0
FichierSortie=/home4/dpineau/blabla
JobName=$Line
IFS="
"
 
rm $FichierSortie
 
for Line in `cat -vte /home4/dpineau/BINDA.exp`
do
 
#je teste si c'est une appli
if [ `echo $Line | grep app: | wc -l` -eq 1 ] ;
 then  
  IsApp=1 ; IsJob=0
fi  
 
# je teste si c'est un job
if [ `echo $Line | grep job: | wc -l` -eq 1 ] ;
 then
  IsJob=1 ; IsApp=0 ; JobName=`echo $Line` ; IsCyclique=0 ; IsDemande=0
  echo "JobName : " $JobName  
fi
 
# je teste si c'est un job  
if [ `echo $IsJob` -eq 1 ] ;
 then  
 
#si c'est cyclique  
  if [ `echo $Line | grep cyclique=oui | wc -l` -eq 1 ] ;
   then IsCyclique=1  
   CurrentJob=`echo $JobName`
   echo "CurrentJOb" $CurrentJob  
  fi
 
#si c'est demande
  if [ `echo $Line | grep type_periodicite=demande | wc -l` -eq 1 ] ;
   then IsDemande=1  
  fi
fi
 
# je teste si c'est un job, si c'est cyclique et si ca rempli ces deux condition j'ecris toto a la place de la ligne vide
echo "Cyclique :" $IsCyclique
echo "Demande : " $IsDemande
 
# je teste si c'est un job
if  ([ `echo $IsJob` -eq 1 ] && [ `echo $Line | grep -e '^[$]' | wc -l` -eq 1 ]) ;
 
# je teste si c'est un job et une demande
 then if  [ `echo $IsDemande` -eq 1 ] ;
   then echo "toto\n">>$FichierSortie
   
# je teste si c'est un job et cyclique alors j'ecris "toto"  
   else if [ `echo $IsCyclique` -eq 1 ] ;
    then  
     echo "toto\n">>$FichierSortie
     
# je teste si c'est un job et non-cyclique alors j'écris "tata"
    else echo "tata\n">>$FichierSortie
    fi
  fi
fi
echo $Line  >>$FichierSortie
done
 
 
Mon dernier pb est d'enlever les $ généré par le cat -vte pour rendre le fichier export presentable
si qq1 sait manier cut ou sed  une aide serait bienvenue


Message édité par hazzelthorn le 10-12-2009 à 10:44:11
Reply

Marsh Posté le 10-12-2009 à 09:44:10   

Reply

Marsh Posté le 10-12-2009 à 10:30:30    

pb résolu
 
Voila le script final  
 
#!/bin/ksh
 
clear
IsJob=0
IsApp=0
IsCyclique=0
IsDemande=0
FichierSortie=/home4/dpineau/blabla
JobName=$Line
IFS="
"
 
rm $FichierSortie
 
for Line in `cat -vte /home4/dpineau/export_vtom.exp`
 
do
 
#je teste si c'est une appli
if [ `echo $Line | grep app: | wc -l` -eq 1 ] ;
 then  
  IsApp=1 ; IsJob=0
fi  
 
# je teste si c'est un job
if [ `echo $Line | grep job: | wc -l` -eq 1 ] ;
 then
  IsJob=1 ; IsApp=0 ; IsCyclique=0 ; IsDemande=0
fi
 
# je teste si c'est un job  
if [ `echo $IsJob` -eq 1 ] ;
 then  
 
#si c'est cyclique  
  if [ `echo $Line | grep cyclique=oui | wc -l` -eq 1 ] ;
   then IsCyclique=1  
  fi
 
#si c'est demande
  if [ `echo $Line | grep type_periodicite=demande | wc -l` -eq 1 ] ;
   then IsDemande=1  
  fi
fi
 
# je teste si c'est un job
if  ([ `echo $IsJob` -eq 1 ] && [ `echo $Line | grep -e '^[$]' | wc -l` -eq 1 ]) ;
 
# je teste si c'est un job et une demande
 then if  [ `echo $IsDemande` -eq 1 ] ;  
 
   then echo "toto\n">>$FichierSortie  
   
   
# je teste si c'est un job et cyclique alors j'ecris "toto"  
   else if [ `echo $IsCyclique` -eq 1 ] ;
    then  
     echo "toto\n">>$FichierSortie  
     
# je teste si c'est un job et non-cyclique alors j'écris "tata"
    else echo "tata\n">>$FichierSortie  
    fi
  fi
   
fi
 
#on enleve les caracteres $ situés en fin de ligne
echo `expr $Line : "\(.*\).$"`>>$FichierSortie
done

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed