*IMO* sollte es auch mal gut sein. Hier wird Joe gerne ein etwas aggressiver Ton vorgeworfen aber teilweise wird die Kritik an ihm auch nicht gerade "fein" geäußert.
Abgesehen davon hat er den Mut gehabt und diesen Thread eröffnet, was deutlich zeigt, dass er an einem Dialog interessiert ist.
Manchmal kommt es *mir persönlich* so vor, als ob manche gerne Öl ins Feuer gießen. Ich persönlich finde eben, dass - wie schon einmal gesagt - beide Seiten sich etwas aufeinander zubewegen müssten und solche Vorwürfe sind da IMO nicht hilfreich.
Verdammt, wieso zur Hölle habe ich seinen Nick erwähnt. Das war nichtmal negativ gemeint. Unter anderem hab ich wegen ihm nochmal was ausprobiert, was aufgrund eines damaligen Bugs nicht funktionierte, aber sehr effizient ist.
Wie auch immer ihr es geschafft habt, aber Joe User macht sich rar.
Ich lese durchgehend mit und amüsiere mich über diverse suboptimale oder falsche Antworten und die darauf folgenden noch absurderen Antworten. Dieser Effekt funktioniert ohne meine Beteiligung viel besser und häufiger, als mit meiner Beteiligung. Auch Off-Topics funktionieren ohne mich mindestens genauso gut...
Scheint wohl doch nicht wesentlich an mir zu liegen, so dass diese Argumente weitestgehend und ganz ohne mein Zutun widerlegt sind.
@Dead_Eye: Ich hätte einen günstigeren Einzeiler für den anderen Thread...
Nun, zuerst wird sich darüber beschwert das Joe der erste in einem Thread ist der mit gehobenen Zeigefinger schüttelt - jetzt wird sich darüber Beschwert das Hetzner die erste Antwort bei einem Gesuche ist. Mal sehen was das nächste ist.
Zitat:
Ich lese durchgehend mit und amüsiere mich über diverse suboptimale oder falsche Antworten und die darauf folgenden noch absurderen Antworten.
Ganz ehrlich? Ich hab dich irgendwo doch schon vermisst..
__________________ CoobeMail - Speed is the Source of Communication
Schnell, einfach und kostenlos! - www.coobe.de
Es ging darum mit dem Befehl find in Verbindung mit xargs zu arbeiten, was sehr effizient ist.
Ich hatte damals das Problem, dass trotz dessen die Argumentenliste zu lang war (null-Byte als Seperator). Es war auf jeden Fall eine sehr einfache Aufgabe (löschen von Dateien anhand einer Dateiliste). Weil nicht funktionierte, bin ich auf | while read umgestiegen, was im Endeffekt mehr als ineffizient ist und bei 60.000 Dateien etwas länger dauert.
Ausschlaggebend war dein Thread, wieso ich xargs nochmal angewandt habe.
Aufgrund meiner Bequemlichkeit und anderer ist durch googlemail der Thread zerstückelt worden. Hier hatte ich nochmals was dazu genauer erläutert, wieso xargs effizienter ist:
Ich kann schon sagen, dass dieses Forum mich weiterbringt und manche Diskussionen jemanden mal etwas überdenken lassen.
Jesse Molina hatte diesen Bug anscheinend auch. Ich kann ihn jetzt weder richtig nachvollziehen noch finde ich etwas passendes im Bugtracker von findutils. Früher war ich noch Jung und unerfahren. Wäre mir sowas jetzt passiert, hätte ich direkt einen der Entwickler kontaktiert und nachgefragt wieso das so ist.
@wstuermer: Schade, ich hätte jetzt einen besseren Regex erwartet, der aus stdout nur die IP-Adresse filtert. So geht es natürlich viel einfacher ohne jetzt sich einen Regex ausdenken zu müssen und dann auch noch alles vor der Shell escapen zu müssen. Das geht mir beim Shell-Scripting oft auf den Geist. Die Ausgabe sollte unter Linux für den Befehl ip immer gleich sein. Oft hat man das Problem, dass viele die deutsche Ausgane der Befehle eingerichtet hat, was zwangsläufig zu Problemen führt.
DeaD_EyE, xargs kennt den Parameter "-n" mit dem die Anzahl der Parameter beschränkt wird.
Liefert find eine Liste von 1000 Dateien und du rufst xargs mit "-n100" auf. Wird der jeweilige Befehl 10 aufgerufen und die Parameter jeweils als 100er Päckchen übergeben.
Das weiß ich, nachdem ich es selbst nochmal genau angesehen hab. Man kann so auch schön sehen, wie effizient ein Befehl arbeitet, der mit vielen Argumenten 10 mal aufgerufen wird oder mit wenigen Argumenten 100 mal.
Im zweiten Link hatte ich das etwas ganauer analysiert.
Wie geschrieben, ist echo ein nicht besonders komplieziertes Tool, dass jetzt gerade viel Rechenzeit benötigt. Aber der Overhead durch das Prozessmanagment reicht schon aus, um die Aufrufzeit etwas zu verlängern.
Kompliziertere Programme arbeiten je nach Programmierweise effizienter, wenn sie direkt mehrere abzuarbeitende Dateien über die Argumentenliste mitgeteilt bekommen, anstatt das Programm wieder und wieder erneut aufzurufen.
Bei 10 Dateien mag das keine Rolle spielen. Wenn man in die Größenordnung von über 20.000 oder mehr Dateien kommt.
Wenn man sich das einmal angewöhnt, gibt es auch nicht mehr solche unsinnigen Konstrukte wie 'cat | grep x' oder 'cat | grep x | wc -l'.
Für mich war die Nutzen von 'foo |while read' eher abstoßend. Schlimmer gehts nimmer...