Baştaki sıfırları tarih çıktısından çıkarma


40

Tarihi aşağıdaki biçimde görüntülemek için date komutunun bir diğer adını yaptım:

2013.06.14.12.10.02

bu komutu kullanarak:

alias date = date +"%Y.%m.%d.%H.%M.%S"

Baştaki sıfırları çıktıdan kaldırmak istemediğim sürece her şey harika çalışıyor.

Biçimi değiştirerek bunu gerçekleştirmenin bir yolu yoktur. Bunun gibi diğer komutlara çıkış boru tarafından sadece yapılabilir düşünüyorum sedve awk.

Çalıştırdığım işletim sistemi Ubuntu 12.04.2 LTS.


Hiçbir vardır sondaki sıfırlar sizin örnekte (iyi, saymak sürece 0de 10saat geçmiş dakika, ancak kaldırma değişiklikler damgası anlam olduğunu). Ne demek götürün lider durumda sıfır (her tarih bileşeninin başında sıfır), eğer sen userland bir GNU kullanıyorsunuz @ j883376 yanıtını muhtemelen yararlı olacaktır. Aksi takdirde, lütfen ortamınızı belirtin (kullanıcı araçları tüm Unix benzeri işletim sistemlerinde aynı değildir ve bu tür işletim sistemlerinde tüm araçlar bile bulunmayabilir).
bir CVn

evet, unvan yanlıştı, yazı doğru olsa da, karışıklık için özür dilerim.
easl,

Telaşa gerek yok. Genel bir kural olarak, ortamınızı belirtmek her zaman iyidir. OS X OpenBSD'den farklı, AIX'ten farklı, GNU'dan farklı. Ortamınızı belirterek, size yararı olmayacak cevaplar alma riskini göze almazsınız (örneğin, OS X'te bir sorunu çözmeye çalışırken Linux / proc kullanımını öneren cevaplar gibi).
bir CVn: 07

2
Sadece bir not: Önde gelen sıfırları kaldırmanın, gerektiğinde bu tarihlere göre sıralamayı zorlaştırdığının farkında ol.
Dubu

Yanıtlar:


74

GNU datekılavuz sayfasına göre:

   By default, date  pads  numeric  fields  with  zeroes.   The  following
   optional flags may follow '%':

   -      (hyphen) do not pad the field

Bu yüzden yapabilirsin

alias date="date '+%Y.%-m.%-d.%-H.%-M.%-S'"

ve almak

2013.6.14.3.19.31

Biçimlendirme için doğru sözdizimi stackoverflow.com/questions/29659069/…
user13107

4

Aptalca geliyor, ancak bu soru ile etiketlendiğinden /sed, bahsettiğiniz gibi bunu sed ile yapmanın bir yolu var :)

alias date='date +"%Y.%m.%d.%H.%M.%S" | sed "s/^0*//g; s/\.0*/./g"'
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.