[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: