openSUSEa suomeksi
openSUSE => Palvelinohjelmat ja ohjelmointi => Aiheen aloitti: guest1093 - 26.01.2012 - klo:17:28
-
Alustana SLES11 SP1, eli samaa koodia kuin openSuSE.
#!/bin/bash
VAR=`date --date="2 days ago" | cut -c 4-12`
echo $VAR > x.txt
Miksi manuaalisesti root tunnuksilla ajettuna x.txt tiedostoon tulee "24.1.2012" mutta crontabin kautta ajastettuna "Jan 24 1"??
Mitä tuohon scriptiin pitää laittaa että saan päivämäärän oikeaan muotoon, eli pelkillä numeroilla?
Tuo on osa scriptiä joka SED komennon avulla siivoaa eräänlaisesta lokitiedostosta rivit jossa tuo pvm, eli ei tällä hetkellä toimi ajastettuna... :-(
-tjka-
-
#!/bin/bash
LANG=C
VAR=`date --date="2 days ago" | cut -c 4-12`
echo $VAR > x.txt
-
Nyt molemmat tavat antavat päivämäärän muodossa "Jan 24 1"... :(
-tjka-
-
Lisää date komentoon formatointi esim +%F tai +%d.%m.%Y
-
Jos LANG=C kerran toimii (vaikkei tavalla, jolla haluat), niin eiköhän LANG=fi_FI.UTF-8 anna haluamasi lopputuloksen?
Muoks: Jaahas, järjestelmästä toiseen pisteenjälkeinen osuus näyttääkin voivan vaihdella. Debianissa se on ”utf8”, pienillä kirjaimilla. Tarkista oman järjestelmäsi käyttämä muoto.
-
date --date="2 days ago" +%d.%m.%y
-
Toimii kun VAR=`date --date="2 days ago" +%d.%-m.%Y` :)
Silloin myöskään LANG määritystä ei tarvita.
-m (month without leading zero)
Y (year with four digits)
Thanx!
-tjka-