Page 1 of 1

date %b nicht lokalisiert

Posted: 2005-10-06 02:08
by mk
Hallo,
eine Frage zu date auf der shell (bash/sh):
wenn ich eine Log Datei zB mit grep durchsuche und mir nur die Ergebnisse des laufenden Tages anzeigen lassen will, kommt mir die Lokalisierung des users in die Quere.

So ist bspw die locale für root de_DE,
ein

Code: Select all

cat /var/log/auth.log | grep "`date +"%b %d"`"
liefert aber ein leeres Ergebnis, da %b für root zB Okt liefert, es in den Logs aber in der englischen Bezeichnung Oct eingetragen ist.
Wie bekomme ich denn ein date ausgespuckt, das nicht lokalisiert ist?
Eine andere Option als %b in der lokalisierten Version scheint es ja für date leider nicht zu geben.

hmm?

Re: date %b nicht lokalisiert

Posted: 2005-10-06 02:46
by superuser1
Hi...

ohne Gewähr:

Code: Select all

cat /var/log/auth.log | grep "`date +"%b %e" | sed 's/Okt/Oct/'`"
:roll:

Re: date %b nicht lokalisiert

Posted: 2005-10-06 14:15
by mk
hmm ja, Danke.
Ich hatte nur eigentlich auf etwas universelleres gehofft, ohne dass ich dem Script per sed eine monatsspezifische Mustererkennung mit auf den Weg geben muss.

Re: date %b nicht lokalisiert

Posted: 2005-10-06 16:03
by Roger Wilco
Der "Useless use of cat" Award des Tages geht an mk. Und der "Best supporting poster for useless use of cat" geht an superuser1.
*SCNR*

Code: Select all

LC_TIME=POSIX grep "$(date +'%b %d')" /var/log/auth.log

Re: date %b nicht lokalisiert

Posted: 2005-10-06 19:21
by superuser1
Hi...
Roger Wilco wrote:Und der "Best supporting poster for useless use of cat" geht an superuser1.
so etwas nennt sich adaptiver Lösungsvorschlag, Roger. Over and out.

:roll:

Re: date %b nicht lokalisiert

Posted: 2005-10-06 20:11
by mk
ja ja, danke danke ... ich würde ja auch gerne einen Award vergeben,
den gibt's aber erst, wenn mich der Post hier weiterbringt. :P
Roger Wilco wrote:

Code: Select all

LC_TIME=POSIX grep "$(date +'%b %d')" /var/log/auth.log
fehlt der Geschichte nicht irgendwie ein EXPORT o.ä.?
So jedenfalls wird in's Leere ge-grep'd und -wie es scheint-
weiterhin "de_DE@euro" als locale benutzt.
superuser1 wrote:adaptiver Lösungsvorschlag
nette Bezeichnung

Re: date %b nicht lokalisiert

Posted: 2005-10-06 20:13
by Roger Wilco
mk wrote:fehlt der Geschichte nicht irgendwie ein EXPORT o.ä.?
Jein, wenn du es so in deiner Shell ausführst, sollte es funktionieren. Die Umgebungsvariable LC_TIME wird dann nur für diesen einen Befehl gesetzt.
mk wrote:So jedenfalls wird in's Leere ge-grep'd und -wie es scheint-
weiterhin "de_DE@euro" als locale benutzt.
Was gibt `LC_TIME=POSIX locale` aus, wenn du das in deiner Shell ausführst?

Re: date %b nicht lokalisiert

Posted: 2005-10-06 20:16
by Joe User

Code: Select all

LC_ALL=C grep "$(date +"%b %d")" /var/log/auth.log

Re: date %b nicht lokalisiert

Posted: 2005-10-06 21:14
by mk
@Roger Wilco
'LC_TIME=POSIX locale' gibt mir ein:

Code: Select all

LANG=de_DE@euro
LC_CTYPE="de_DE@euro"
LC_NUMERIC="de_DE@euro"
LC_TIME=POSIX
LC_COLLATE="de_DE@euro"
LC_MONETARY="de_DE@euro"
LC_MESSAGES="de_DE@euro"
LC_PAPER="de_DE@euro"
LC_NAME="de_DE@euro"
LC_ADDRESS="de_DE@euro"
LC_TELEPHONE="de_DE@euro"
LC_MEASUREMENT="de_DE@euro"
LC_IDENTIFICATION="de_DE@euro"
LC_ALL=
der Award geht aber an Joe :P
Danke, so funktioniert's.
Nur verständnishalber:
wofür steht/was bewirkt das 'C' genau?

Danke euch beiden :)

Re: date %b nicht lokalisiert

Posted: 2005-10-06 21:20
by Roger Wilco
mk wrote:wofür steht/was bewirkt das 'C' genau?
"C" ist die Standard-Locale, d. h. es findet keine Lokalisierung statt.