Kirjoittaja Aihe: Pieni scripti ongelma [ratkaistu]  (Luettu 5154 kertaa)

0 jäsentä ja 1 Vieras katselee tätä aihetta.

Poissa tjka

  • SUSECustomer
  • *
  • Viestejä: 24
  • Sukupuoli: Mies
Pieni scripti ongelma [ratkaistu]
« : 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-
« Viimeksi muokattu: 31.01.2012 - klo:23:29 kirjoittanut tjka »

Poissa jmp

  • openSUSE Member
  • *
  • Viestejä: 4530
  • Sukupuoli: Mies
    • openSUSEa suomeksi
Vs: Pieni scripti ongelma
« Vastaus #1 : 26.01.2012 - klo:18:04 »
#!/bin/bash                                                                                                                                                                                               
LANG=C                                                                                                                                                                                                     
VAR=`date --date="2 days ago" | cut -c 4-12`                                                                                                                                                               
echo $VAR > x.txt
Ja muistakaa pitää hauskaa ;)

openSUSE Tumbleweed (x86_64)

Poissa tjka

  • SUSECustomer
  • *
  • Viestejä: 24
  • Sukupuoli: Mies
Vs: Pieni scripti ongelma
« Vastaus #2 : 26.01.2012 - klo:19:41 »
Nyt molemmat tavat antavat päivämäärän muodossa "Jan 24 1"...  :(

-tjka-

Poissa hro

  • Jäsen
  • Viestejä: 115
Vs: Pieni scripti ongelma
« Vastaus #3 : 26.01.2012 - klo:21:09 »
Lisää date komentoon formatointi esim +%F tai +%d.%m.%Y

Poissa SuperOscar

  • Käännösryhmä
  • *
  • Viestejä: 703
  • Sukupuoli: Mies
  • Tänään täällä, huomenna poissa
    • Legisign.org
Vs: Pieni scripti ongelma
« Vastaus #4 : 26.01.2012 - klo:23:36 »
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.
openSUSE Leap 15.1 (pöytäkone 1, kannettava 1), Debian GNU/Linux 10 (kannettava 2), openSUSE Tumbleweed (pöytäkone 2), LibreELEC 8.2.5 (RPi 1), Raspbian GNU/Linux 10 (RPi 2)

Poissa harmie

  • Valvoja
  • *
  • Viestejä: 2600
  • Sukupuoli: Mies
Vs: Pieni scripti ongelma
« Vastaus #5 : 27.01.2012 - klo:09:25 »
date --date="2 days ago" +%d.%m.%y

Poissa tjka

  • SUSECustomer
  • *
  • Viestejä: 24
  • Sukupuoli: Mies
Vs: Pieni scripti ongelma
« Vastaus #6 : 31.01.2012 - klo:23:28 »
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-