The UNIX and Linux Forums  


Go Back   Die UNIX-und Linux-Foren > Top Foren > Shell Programmierung und Scripting
.
Google unix.com



Shell Programmierung und Scripting Post Fragen zu ksh, csh, sh, bash, Perl, PHP, sed, awk und anderen Shell-Skripte und Shell-Scripting-Sprachen hier.

Mehr UNIX-und Linux-Forum Themen Vielleicht finden Sie hilfreiche
Faden Thread Starter Forum Antworten Last Post
Verwenden Sie die Datum-Befehl finden Sie im letzten Monat Cbish68 Shell Programmierung und Scripting 5 08-10-2007 11:32 AM
finden Monat aus einem Datum rudoraj UNIX for Dummies Questions & Answers 5 07-03-2007 09:21 AM
Wie finde ich den ersten Tag des Vormonats in unix? Mohapatra Shell Programmierung und Scripting 10 07-02-2007 09:57 PM
Brauchen Sie Hilfe, jeden Freitag im Monat LAY Shell Programmierung und Scripting 3 12-09-2006 09:12 AM
Hier finden Sie alle Dateien Monat Maldini Shell Programmierung und Scripting 13 08-03-2005 02:22 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 Suche diesen Thread Rate Thread Anzeige-Modi
  #1 (permalink)  
Old 05-30-2007
leslie02 leslie02 is offline
Registrierte Nutzer
  
 

Registriert seit: Mai 2007
Beiträge: 5
Smile Wie finde ich den dritten Freitag eines jeden Monats?

Hilfe bitte! Ich brauche, um den Kalender und das Datum der dritten Freitag eines jeden Monats in einer Variable für den Vergleich in einer "if"-Anweisung. Wie würde ich das tun?

Thnx,
leslie02
  #2 (permalink)  
Old 05-30-2007
aigles's Avatar
aigles aigles is offline Forum Advisor  
Registrierte Nutzer
  
 

Join Date: Apr 2004
Ort: Bordeaux, Frankreich
Posts: 1433
Der dritte Freitag ist immer zwischen den Tagen 15 und 21 inklusive des Monats.
Sie können den Test wie folgt:

Code:
day_of_week=$(date +%w)  # (0..6); 0 is Sunday, 5 is Friday
day_of_month=$(date +%e) # space padded
if [ ${day_of_week} -eq 5 -a ${day_of_month} -ge 15 -a ${day_of_month} -le 21 ]
then
   echo "third Friday "
fi

Jean-Pierre.
  #3 (permalink)  
Old 05-30-2007
Shell_Life's Avatar
Shell_Life Shell_Life is offline
Registrierte Nutzer
  
 

Join Date: März 2007
Lage: Bahia, Brasilien
Beiträge: 695
Leslie,
Siehe, wenn diese Arbeiten für Sie:

Code:
typeset -i mMth=1
mYear='2007'
while [ ${mMth} -le 12 ]
do
  m3Friday=`cal ${mMth} ${mYear} | tail +3 | cut -c16,17 | sed '/^ *$/d' | sed -n '3p'`
  echo "Third Friday of "${mMth}"/"${mYear}" = "${m3Friday}
  mMth=${mMth}+1
done

  #4 (permalink)  
Old 05-31-2007
akrathi akrathi is offline
Registrierte Nutzer
  
 

Join Date: Sep 2005
Beiträge: 41
Diese sollten

Danke
Ashok

cal 07 2007 | cut-C16-18 | tail -4 | head -1
  #5 (permalink)  
Old 05-31-2007
anbu23 anbu23 is offline Forum Advisor  
Registrierte Nutzer
  
 

Join Date: März 2006
Ort: Bangalore, Indien
Posts: 1398

Code:
cal 05 2007 | sed -n "5{s/ *[0-9]\{2\}$//;s/^.* //p;}"

  #6 (permalink)  
Old 05-31-2007
aigles's Avatar
aigles aigles is offline Forum Advisor  
Registrierte Nutzer
  
 

Join Date: Apr 2004
Ort: Bordeaux, Frankreich
Posts: 1433
Shell_Life, akrathi, anbu23, so scheint es, dass Ihre Lösungen funktionieren nicht in allen Fällen:

Code:
$ cal 12 2007
       December 2007      
Sun Mon Tue Wed Thu Fri Sat  
                         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

$ cal 12 2007 | tail +3 | cut -c16,17 | sed '/^ *$/d' | sed -n '3p'
 2
$ cal 12 2007 | cut -c16-18 | tail -4 | head -1
 13
$ cal 12 2007 | sed -n "5{s/ *[0-9]\{2\}$//;s/^.* //p;}"
14
$

Eine mögliche Lösung:

Code:
$ cal 12 2007 | awk 'NR>2 && NF>=2 && ++w==3 {print $6}'
21
$ cal 07 2007 | awk 'NR>2 && NF>=2 && ++w==3 {print $6}'
20
$ cal 6 02007 | awk 'NR>2 && NF>=2 && ++w==3 {print $6}' 
15
$

Jean-Pierre.
  #7 (permalink)  
Old 05-31-2007
ghostdog74 ghostdog74 is offline Forum Advisor  
Registrierte Nutzer
  
 

Join Date: Sep 2006
Beiträge: 2555
diese nicht verwendet CAL

Code:
count=0
month="05"
for s in `seq 1 31`
do
 fr=$(date +%a --date="2007-$month-$s" )
 if [ "$fr" == "Fri" ];then
     friday[$count]=$s
     count=$((count+1))
 fi 
done
echo ${friday[2]} #third fri

Closed Thread

Lesezeichen

Thread Tools Suche diesen Thread
Suche diesen Thread:

Erweiterte Suche
Anzeige-Modi Rate this thread
Rate this thread:

Forumregeln
Du möglicherweise nicht neue Themen
Du möglicherweise nicht nach Antworten
Du möglicherweise nicht post-Anlagen
Du möglicherweise nicht bearbeiten Sie Ihre Beiträge

BB-Code ist Auf
Smilies sind Auf
[IMG] Code Auf
HTML-Code ist Aus
Trackbacks sind Auf
Pingbacks sind Auf
Refbacks sind Auf




Alle Zeiten sind GMT -4. Es ist jetzt 12:05 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Ltd. Sprachliche Übersetzungen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Die UNIX-und Linux-Foren Content © Copyright 1993-2009. Alle Rechte Reserved.Ad Management von RedTyger

Content Relevant URLs durch vBSEO 3.2.0