IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

Script Ksh


Sujet :

Linux

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 55
    Points : 37
    Points
    37
    Par défaut Script Ksh
    Bonjour,

    je souhaite creer une fontion dans mon script qui me permetrait de faire des fichier de sauvegarde c'est a dire
    je genere un fichier nommé test.txt

    mais lorsque je genererai un deuxieme fichiers, mon script devra verifier si le fichier test.txt existe deja et si oui le renommé test2.txt

    je pense devoir utiliser la commande if mais j'aurais besoins de vos lumieres

    voici mon script

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    #!/bin/ksh
    RepTrv="/produits/test/ste"
     
    cd $RepTrv
     
    # Déclaration
    FicOutDeb="EtatD"
    Nomfic="test"
    Titre=0
    Region=0
    Date=`date '+%d/%m/%y'`
    Heure=`date '+%H:%M'`
    Annee=`date '+%Y'`
    Mois=`date '+%m'`
    Jour=`date '+%d'`
    Heures=`date '+%H'`
    Minute=`date '+%M'`
    Numfic=000
    ext=".txt"
     
     
    cat $FicOutDeb | awk -F'|' -v Titre=$Titre -v Region=$Region -v Date=$Date -v Heure=$Heure -v Annee=$Annee -v Mois=$Mois -v Jour=$Jour -v Heures=$Heures -v Minute=$Minute  '{
    ANNEE=substr($15,1,4)
    MOIS=substr($15,6,2)
    JOUR=substr($15,9,2)
    HEURE=substr($15,12,2)
    MINUTE=substr($15,15,2)
     
     
    if(Titre==0)
    	{
    printf ""
    Titre=1
    }
     
    if(($6!=0) && ($7!=0) && ($8!=0) && ($9!=0) && ($5!=2) && ($17<=5) && ($2!=2))
    	{
    if((($6==2) || ($6==3)) && (($7==2) || ($7==3)) && (($8==2) || ($8==3)) && (($9==2) || ($9==3)))
    	{
    	if(($18<=50) && ($19<=50) && ($20<=50) && ($21<=50))
    	{
    printf"%s	%s\n",$1,Region
    		next
    		}
    		else 
    		{
    printf"%s	%s\n",$1,Region
    		next
    		}
    		}
    	if($16==0)
    	{
    printf"%s	%s\n",$1,Region
    		next
    		}
    	else
    		{
    printf"%s	%s\n",$1,Region
    		next
    		}
    	}
     
    if((($2!=2) && ($3==0) && ($17<=5)) && ($5!=2))
    	{
    	printf"%s	%s\n",$1,Region
    	next
    }
     
    if(($14==3) &&  ($5!=2) && ($2!=2))
    	{
    printf"%s	%s\n",$1,Region
    	next
    	}
     
    if(($12==3) && ($5!=2) && ($2!=2))
    	{
    printf"%s	%s\n",$1,Region
    	next
    	}
     
    if(($22==3) &&  ($5!=2) && ($2!=2))
    	{
    printf"%s	%s\n",$1,Region
    	next
    }
     
    if(($13==3) && ($5!=2) && ($2!=2))
    	{
    printf"%s	%s\n",$1,Region
    	next
    	}
     
    if(((ANNEE>Annee) && ($5==2) && ($17<=5) && ($2!=2)) || ((ANNEE==Annee) && (MOIS==Mois) && (JOUR<Jour) && ($5==2) && ($17<=5) && ($2!=2)) || ((ANNEE==Annee) && (MOIS==Mois) && (JOUR==Jour) && (((HEURE<Heures) && (MINUTE<30)) || ((HEURE<Heures) && ((60-MINUTE+Minute)>=30))) && ($5==2) && ($17<=5) && ($2!=2)) || ((ANNEE==Annee) && (MOIS==Mois) && (JOUR==Jour) && (HEURE==Heures) && (MINUTE<=(Minute-30)) && ($5==2) && ($17<=5) && ($2!=2)) || ((ANNEE==Annee) && (MOIS<Mois) && ($5==2) && ($17<=5) && ($2!=2)) || ((ANNEE<Annee) && ($5==2) && ($17<=5) && ($2!=2)))
    	{
    	if ($23==0)
    		{
    printf"%s	%s\n",$1,Region
    		next
    		}
    	else
    		{
    printf"%s	%s\n",$1,Region
    		next
    		}
    	}
    }' >$Nomfic$ext
     
    rm $FicOutDeb
    nl -ba test.txt>test1.txt
    Merci

  2. #2
    Membre actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2005
    Messages
    165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2005
    Messages : 165
    Points : 241
    Points
    241
    Par défaut
    Bonsoir.

    Voilà une idée pour récupérer le nombre de fichiers de sauvegarde déjà présent :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NbFicSav=`ls $RepTrv/test*.txt | wc -w`
    Il ne te reste plus qu'à incrémenter la variable et à l'utiliser dans le nom de ton futur fichier de sauvegarde.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 55
    Points : 37
    Points
    37
    Par défaut
    Bjr



    ok j'ai reussi à incrementer mon fichier

    mais j'ai un autre souci j'aimerais que la commande nl -ba qui me permet de compter les lignes soit directement integrer dans ma sortie standart sans devoir creer un fichier "test1.txt "
    quelqu'un sait il comment faire ?

    THX

  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 296
    Points : 1 803
    Points
    1 803
    Par défaut
    Citation Envoyé par tonymontana4192
    Bjr



    ok j'ai reussi à incrementer mon fichier

    mais j'ai un autre souci j'aimerais que la commande nl -ba qui me permet de compter les lignes soit directement integrer dans ma sortie standart sans devoir creer un fichier "test1.txt "
    quelqu'un sait il comment faire ?

    THX
    j ai peur de ne pas comprendre le problème ?
    nl numerote les lignes mais ne les compte pas !
    que veut tu obtenir ?
    Marc
    Slackware for ever ......
    BASH - KSH ( http://marcg.developpez.com/ksh/ )

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 55
    Points : 37
    Points
    37
    Par défaut
    oui je me suis mal exprimé

    nl numerote les lignes, je voudrait que mon fichier sorte directement comme ceci

    1 Renault 1995
    2 Peugeot 2002
    3 Renault 2005
    4 Renault 1997
    5 Peugeot 2000
    6 Citroen 2002
    7 Renault 2005
    8 Renault 1999
    9 Citroen 2002
    10 Peugeot 2001
    mon fichier test.txt me sort ceci

    Renault 1995
    Peugeot 2002
    Renault 2005
    Renault 1997
    Peugeot 2000
    Citroen 2002
    Renault 2005
    Renault 1999
    Citroen 2002
    Peugeot 2001
    donc pour cela je suis obligé de creer un deuxieme fichier par le biais de cette commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nl -ba test.txt>test1.txt
    THX

  6. #6
    Membre chevronné

    Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 296
    Points : 1 803
    Points
    1 803
    Par défaut
    tu pipe la sortie creant le 1er fichier dans le nl
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    commande | ln > test.txt
    Marc
    Slackware for ever ......
    BASH - KSH ( http://marcg.developpez.com/ksh/ )

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 55
    Points : 37
    Points
    37
    Par défaut
    c'est bon ca marche

    voici la commande que j'ai rentré en sortie

    Thx

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. droper les index dans un script ksh
    Par donny dans le forum Oracle
    Réponses: 7
    Dernier message: 26/07/2006, 11h14
  2. Menu avec un script ksh ?
    Par insupien dans le forum Linux
    Réponses: 2
    Dernier message: 06/07/2006, 13h05
  3. [Sqlplus ] Appel depuis script KSH
    Par kasiop dans le forum Oracle
    Réponses: 2
    Dernier message: 27/01/2006, 10h25
  4. Execution d'un script ksh distant
    Par jool dans le forum C++
    Réponses: 2
    Dernier message: 18/03/2005, 10h10
  5. Script ksh - Valeur maximal d'un PID
    Par fidififouille dans le forum Linux
    Réponses: 7
    Dernier message: 09/08/2004, 10h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo