Bash:
Päivämäärän jäsennys merkkijonosta
Miten:
Bash itse on melko rajallinen suorissa päivämäärän jäsentämiskyvyissä ja se nojaa usein ulkoisiin työkaluihin, kuten date ja awk, monimutkaisempiin manipulaatioihin. Tässä on, miten voit jäsentää tietyn formaatin ja sitten käyttää sitä date-komennon kanssa, jotta voit muuntaa sen tai suorittaa operaatioita.
Esimerkki 1: Poimi päivämäärämerkkijono ja muunna se toiseen formaattiin.
Oletetaan, että sinulla on päivämäärä muodossa vvvv-kk-pp ja haluat muuntaa sen muotoon pp-kk-vvvv.
alkuperainen_paivamaara="2023-04-01"
muotoiltu_paivamaara=$(date -d $alkuperainen_paivamaara '+%d-%m-%Y')
echo $muotoiltu_paivamaaraEsimerkkitulo:
01-04-2023Tämä käyttää date-komentoa -d-vaihtoehdon kanssa määrittämään syöttöpäivämäärämerkkijonon, ja +%d-%m-%Y muotoilemaan tulosteen.
Esimerkki 2: Käyttämällä awk:ia jäsentämään päivämäärä rakenteellisesta tekstirivistä ja muuntamaan se.
Oletetaan, että sinulla on lokitiedostorivi:
2023-04-01 12:00:00 Käyttäjä kirjautui sisäänVoit poimia ja muuntaa päivämääräosan käyttämällä awk:ia ja date:a.
loki_rivi="2023-04-01 12:00:00 Käyttäjä kirjautui sisään"
paivamaara_osa=$(echo $loki_rivi | awk '{print $1}')
muotoiltu_paivamaara=$(date -d $paivamaara_osa "+%A, %B %d, %Y")
echo $muotoiltu_paivamaaraEsimerkkitulo:
Lauantai, huhtikuu 01, 2023Tässä esimerkissä käytetään awk:ia jakamaan lokirivi ja poimimaan päivämääräosa ($1 edustaa ensimmäistä välilyönnein eroteltua kenttää), ja sitten date:a käytetään sen uudelleenmuotoiluun.
Kolmannen osapuolen työkalujen käyttö
Monimutkaisempia jäsentämisiä tai monenlaisten päivämäärämuotojen käsittelyä varten kolmannen osapuolen työkalut, kuten dateutils, voivat olla erittäin käteviä.
Esimerkki dateutils-ohjelmalla:
Oletetaan, että sinulla on päivämäärämerkkijono ei-standardissa muodossa, esimerkiksi, huhtikuu 01, 2023.
alkuperainen_paivamaara="huhtikuu 01, 2023"
muotoiltu_paivamaara=$(dateconv -i "%B %d, %Y" -f "%Y-%m-%d" <<< $alkuperainen_paivamaara)
echo $muotoiltu_paivamaaraEsimerkkitulo:
2023-04-01Tämä komento käyttää dateutils-pakettiin kuuluvaa dateconv:ia, määrittäen syöttömuodon -i-vaihtoehdolla ja halutun tulostusmuodon -f-vaihtoehdolla. dateutils tukee laajaa valikoimaa päivämäärä- ja aikamuotoja, tehden siitä erittäin monipuolisen välineen päivämäärän jäsentämistehtäviin Bash-skripteissä.