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

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

guest1093

  • Vieras
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-

Poissa jmp

  • openSUSE Member
  • *
  • Viestejä: 4538
  • 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)

guest1093

  • Vieras
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-

guest728

  • Vieras
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ä: 821
  • 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.
Debian GNU/Linux 11 (pöytäkone 1 & kannettavat 1, 3), openSUSE Leap 15.4 (kannettava 2), openSUSE Tumbleweed (pöytäkone 2), Ubuntu 20.04 LTS (RPi 2 B), LibreELEC 10 (RPi 4 B)

Poissa harmie

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

guest1093

  • Vieras
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-