Re: [Solved][Zusammenfassung]
Hallo,
Am Mon, 30 May 2005, Gerhard Wolfstieg schrieb:
>On Mon, 30 May 2005 13:20:17 +0200
>Michelle Konzack <linux4michelle@freenet.de> wrote:
>
>> > Schon `sort -u' probiert?
>>
>> Naja, das dürfte in den meisten fällen wohl nicht erwünscht sein.
>> (Wenn danach alles alphabetisch sortiert wurde)
>
>Stimmt! Dann fällt aber auch uniq aus und HISTCONTROL=erasedups geht
>noch nicht als Standard unter Sarge. Was dann? Dann wird's aufwendig,
>oder? Eine Lösung für das Problem läßt sich öfter gebrauchen.
Vorbemerkung: Zum testen habe ich mal meine aktuelle History kopiert,
mit 'sort -u bash_history > bash_hist_sortu' aufgeraeumt und dann bei
obigen beiden Befehlen 'sort keys %h' statt 'keys %h' verwendet und
das jew. Resultat mit bash_hist_sortu verglichen (diff). Unterschiede
gab's keine. Achso: meine ~/.bash_history ist gerade:
$ wc ~/.bash_history
10000 44635 374446 /home/dh/.bash_history
und enthaelt durchaus ein paar komplexere Befehle (wie schon an der
Dateigroesse erkennbar ;)
$ perl -wne '$h{$_}++; END { print join("", keys %h); } .bash_history
Oder (das habe ich jetzt nur ein wenig getestet), teste das lieber
einige Male mit einer Kopie einer realen History:
$ perl -i.old -wne '$h{$_}++; eof and print
join("", keys %h);' .bash_history
(eine Zeile) wobei dabei aber leider die Reihefolge floeten geht.
*gruebel* ... Ha! Geht natuerlich doch:
$ perl -i.old -wne '$h{$_} = $. ; eof and print
join("", sort { $h{$a} <=> $h{$b} } keys %h);' .bash_history
(wieder eine Zeile)
Nach der Behandlung (der Kopie) durch den letzten Befehl:
4438 23701 211831 .bash_history
HTH & HAND,
-dnh
PS: das sollte sogar mit mehreren Dateien funktionieren, also mit
mehreren Dateinamen.
--
17. A security system is only as secure as its secret. Beware
of pseudo-secrets.
--- Eric S. Raymond, "The Cathedral and the Bazaar"
Reply to: