The UNIX and Linux Forums  
Hej og Velkommen fra USA til UNIX og Linux Forums! Tak for dit besøg og deltager i vores globale samfund.

Go Back   UNIX og Linux Forums > Top Forums > Shell Programmering og Scripting
.
google unix.com



Shell Programmering og Scripting Post spørgsmål om ksh, CSH, SH, Bash, Perl, PHP, SED, AWK og ANDRE shell scripts og Shell scriptsprog her.

Mere UNIX og Linux Forum Emner du måske kan finde Helpful
Tråd Thread Starter Forum Svar Last Post
beregne 13 måneder siden andrea_mussap Shell Programmering og Scripting 4 11-21-2007 08:14 PM
Cron at køre første dag i måneden for at beregne dato 3 måneder siden new2ss Shell Programmering og Scripting 1 05-17-2007 02:28 AM
nogle måneder ego big123456 Shell Programmering og Scripting 8 07-27-2005 03:31 AM
Sammenligning af to måneder pankschawla UNIX for Advanced & Ekspertsøgning Brugere 1 02-11-2004 07:32 AM
DNS Hjælp - forsøgt at gøre dette i flere måneder matt2kjones IP Networking 16 09-28-2002 09: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 Søg denne tråd Rate Thread Display Modes
  #1 (permalink)  
Old 11-16-2007
andrea_mussap andrea_mussap is offline
Registreret Bruger
  
 

Join Date: Nov 2007
Stillinger: 4
beregne 13 måneder siden

hej,
Jeg har en stor fil, der indeholder oplysningerne, da 4 år siden.

Jeg har brug for re-oprette denne fil, men lige linjer, der er 13 måneder siden fra i dag.

se hvad jeg har: (Jeg har en file.ksh at opkald denne 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
/ STABIL
/ NODUPLICATES
/ Opfylde "dag \u003d` dato +% Y% m% d `"
/ Opfylde "13m_ago \u003d` expr $ (dag) - 10000 «"
/ INFILE \u003d $ PAR_SCL1
/ OMRAADET \u003d (CONTA_CORRENTE, position \u003d 1, size \u003d 13)
/ OMRAADET \u003d (DATA_VENCIMENTO, POSITION \u003d 50, size \u003d 10)
/ BETINGELSE \u003d (cond1, TEST \u003d (DATA_VENCIMENTO> ($ 13m_ago))
/ INCLUDE \u003d (BETINGELSE \u003d cond1)
/ KEY \u003d (NUMERO_FATURA, Stigende)
/ OUTFILE \u003d $ PAR_SCL2
/ OMRAADET \u003d (CONTA_CORRENTE, position \u003d 1, size \u003d 13)
/ OMRAADET \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" er den dato, der skal være i højst lige 13 måneder siden.
opstillingen af DATA_VENCIMENTO er 20071115, f.eks.


Jeg har allerede se emnet ( Yesterdays Date / Dato aritmetiske), Men det hjalp ikke mig ...

Min Unix er Solaris.

ikke nogen kan hjælpe?
thanks, Andrea.
  #2 (permalink)  
Old 11-16-2007
Perderabo's Avatar
Perderabo Perderabo is offline Forum Staff  
Unix Daemon
  
 

Join Date: Aug 2001
Beliggenhed: Ashburn, Virginia
Indlæg: 9.111
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
Registreret Bruger
  
 

Join Date: Nov 2007
Stillinger: 4
re.: beregne 13 måneder siden

Perderabo takket men dit eksempel ikke arbejder for mig.

men jeg fandt en løsning:

i mit vigtigste program jeg beregne 13 måneder siden

Høje \u003d `dato +% Y% m% d`
data_13m \u003d `expr $ (Høje) - 10200«

og så har jeg sende den variable data_13m til file.scl

eksport PAR_SCL3 \u003d $ (data_13m)

i file.scl jeg gjorde:

.
.
/ Opfylde "$ PAR_SCL3"
/ INFILE \u003d $ PAR_SCL1
/ OMRAADET \u003d (CONTA_CORRENTE, position \u003d 1, size \u003d 13)
/ OMRAADET \u003d (DATA_VENCIMENTO, POSITION \u003d 50, size \u003d 10)
/ BETINGELSE \u003d (cond1, TEST \u003d (DATA_VENCIMENTO> $ PAR_SCL3))

og det virkede!
ved.
  #4 (permalink)  
Old 11-16-2007
Perderabo's Avatar
Perderabo Perderabo is offline Forum Staff  
Unix Daemon
  
 

Join Date: Aug 2001
Beliggenhed: Ashburn, Virginia
Indlæg: 9.111
Du er i realiteten trække 1 år og 2 måneder fra den dato. Hvis det er din defintion af "13 måneder siden", kan du ændre mit script til at
((måned \u003d måned-2))
if ((måned <1)); derefter

Bemærk, at din metode vil mislykkes, hvis den oprindelige dato i januar eller februar.
Closed Thread

Bogmærker

Thread Tools Søg denne tråd
Søg denne tråd:

Avanceret søgning
Display Modes Bedøm denne tråd
Bedøm denne tråd:

Udstationering Regler
Du kan ikke post nye tråde
Du kan ikke post svar
Du kan ikke post vedhæftede filer
Du kan ikke redigere dine indlæg

BB-kode er
Smilies er
[IMG] koden er
HTML-koden er Slukket
Trackbacks er
Pingbacks er
Refbacks er




Alle tidspunkter er GMT -4. Den tid er nu 01:40 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Oversættelser Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. Alle rettigheder Reserved.Ad Management ved RedTyger

Content Relevant webadresser ved vBSEO 3.2.0