The UNIX and Linux Forums  

Go Back   Les systèmes UNIX et Linux Forums > Top Forums > De programmation et de script Shell
.
google unix.com



De programmation et de script Shell Posez vos questions à propos de KSH, CSH, SH, BASH, PERL, PHP, SED, awk et d'autres scripts shell et les langages de script shell ici.

Plus d'UNIX et Linux Forum Sujets Vous trouverez peut-être utile
Fil Thread Starter Forum Réponses Last Post
calculer il ya 13 mois andrea_mussap De programmation et de script Shell 4 11-21-2007 08:14 PM
Cron pour lancer premier jour du mois pour le calcul de la date il ya 3 mois new2ss De programmation et de script Shell 1 05-17-2007 03:28 AM
quelques mois ego big123456 De programmation et de script Shell 8 07-27-2005 04:31 AM
Comparaison de deux mois pankschawla UNIX for Advanced & Expert Users 1 02-11-2004 07:32 AM
DNS Aide - tentent de faire cela pendant des mois matt2kjones IP Networking 16 09-28-2002 10:46 AM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Recherche sur ce Thread Rate Thread Modes d'affichage
  #1 (permalink)  
Old 11-16-2007
andrea_mussap andrea_mussap is offline
Registered User
  
 

Join Date: Nov 2007
Messages: 4
calculer il ya 13 mois

salut,
J'ai un gros fichier qui contient les données car il ya 4 ans.

J'ai besoin de re-créer ce fichier, mais qui sont simplement des lignes il ya 13 mois à compter d'aujourd'hui.

voir ce que j'ai: (j'ai une file.ksh que cette demande file.scl ok!)

\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d File.scl \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d
/ STATISTICS \u003d stderr
/ STABLE
/ NODUPLICATES
/ EXECUTE "aujourd'hui \u003d` date +% Y% m% d `"
/ EXECUTE "13m_ago \u003d` expr $ () aujourd'hui - 10000 `"
/ INFILE \u003d $ PAR_SCL1
/ DOMAINE \u003d (CONTA_CORRENTE, POSITION \u003d 1, SIZE \u003d 13)
/ DOMAINE \u003d (DATA_VENCIMENTO, POSITION \u003d 50, SIZE \u003d 10)
/ ETAT \u003d (cond1, TEST \u003d (DATA_VENCIMENTO> ($ 13m_ago))
/ INCLUDE \u003d (CONDITION \u003d cond1)
/ KEY \u003d (NUMERO_FATURA, ASCENDANTS)
/ OUTFILE \u003d $ PAR_SCL2
/ DOMAINE \u003d (CONTA_CORRENTE, POSITION \u003d 1, SIZE \u003d 13)
/ DOMAINE \u003d (DATA_VENCIMENTO, POSITION \u003d 50, SIZE \u003d 10)

\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u0

"DATA_VENCIMENTO» est la date qui doivent être au maximum égale à 13 mois.
la présentation de DATA_VENCIMENTO est 20071115, par exemple.


J'ai déjà voir le sujet ( Yesterdays Date / Date Arithmetic), Mais il ne m'a pas aidée ...

Mon Unix Solaris.

Quelqu'un peut m'aider?
Merci, Andrea.
  #2 (permalink)  
Old 11-16-2007
Perderabo's Avatar
Perderabo Perderabo is offline Forum Staff  
Unix Daemon
  
 

Join Date: Aug 2001
Location: Ashburn, Virginia
Posts: 9131

Code:
$ cat 13months_ago
#! /usr/bin/ksh

for input in 20071115 20071105 20070105 ; do

        year=${input%????}
        day=${input#??????}
        month=${input#????}
        month=${month%??}
        month=${month#0}
        day=${day#0}
        print -n $input $year $month $day

        ((year=year-1))
        ((month=month-1))
        if ((!month)) ; then
                ((year=year-1))
                month=12
        fi
        typeset -Z2 newday newmonth
        newday=$day
        newmonth=$month
        output=${year}${newmonth}${newday}
        print -- " -->" $year $month $day $output
done
exit 0
$ ./13months_ago
20071115 2007 11 15 --> 2006 10 15 20061015
20071105 2007 11 5 --> 2006 10 5 20061005
20070105 2007 1 5 --> 2005 12 5 20051205
$

  #3 (permalink)  
Old 11-16-2007
andrea_mussap andrea_mussap is offline
Registered User
  
 

Join Date: Nov 2007
Messages: 4
re.: calculer il ya 13 mois

Perderabo, merci de votre exemple, mais ne fonctionne pour moi.

mais j'ai trouvé la solution:

dans mon programme principal je calculer il ya 13 mois

hoje \u003d `date +% Y% m% d`
data_13m \u003d `expr $ () hoje - 10200»

et puis, je suis à la variable data_13m à la file.scl

l'exportation PAR_SCL3 \u003d $ () data_13m

dans le file.scl je n'ai:

.
.
/ EXECUTE "$ PAR_SCL3"
/ INFILE \u003d $ PAR_SCL1
/ DOMAINE \u003d (CONTA_CORRENTE, POSITION \u003d 1, SIZE \u003d 13)
/ DOMAINE \u003d (DATA_VENCIMENTO, POSITION \u003d 50, SIZE \u003d 10)
/ ETAT \u003d (cond1, TEST \u003d (DATA_VENCIMENTO> $ PAR_SCL3))

et cela a fonctionné!
par.
  #4 (permalink)  
Old 11-16-2007
Perderabo's Avatar
Perderabo Perderabo is offline Forum Staff  
Unix Daemon
  
 

Join Date: Aug 2001
Location: Ashburn, Virginia
Posts: 9131
Vous êtes en effet soustrayant 1 an et 2 mois à compter de la date. Si tel est votre définition de "13 mois", vous pouvez changer mon script à
((mois \u003d mois-2))
if ((mois <1)), puis

Notez que votre méthode échouera si la date est en janvier ou février.
Closed Thread

Bookmarks

Thread Tools Recherche sur ce Thread
Recherche sur ce Thread:

Recherche avancée
Modes d'affichage Rate this thread
Rate this thread:

Règles de messages
Tu mai pas de nouvelles discussions: nonoui
Tu mai pas envoyer des réponses:
Tu mai pas envoyer des pièces jointes
Tu mai pas modifier vos messages

BB code est Sur
Smilies sont Sur
[IMG] code est Sur
Le code HTML est Hors tension
Trackbacks sont Sur
Pingbacks sont Sur
Refbacks sont Sur




Toutes les heures sont au format GMT -4. Le temps est maintenant 07:15 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traductions Langue Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Les systèmes UNIX et Linux Forums Content Copyright © 1993-2009. Tous droits Reserved.Ad de gestion par RedTyger

Content Relevant URLs par vBSEO 3.2.0