Welcome, Guest. Please login or register.
Did you miss your activation email?

Author Topic: [DE] 3 Einzeiler  (Read 2494 times)

Offline agaida

  • User
  • Posts: 1.760
    • http://g-com.eu
[DE] 3 Einzeiler
« on: 2011/01/27, 22:26:03 »
Hi,
gibt es so was wie die folgenden Einzeiler schon irgendwo in fertiger (und eventuell ein wenig ausgefeilterer) Form?

* apt-show-versions | grep -v 'upto'
* apt-show-versions | grep -v 'upto'  | grep libre | sudo apt-get install $(awk '{print $1}') -t experimental
* apt-show-versions | grep -v 'upto'  | grep fglrx | sudo apt-get install $(awk '{print $1}') -t experimental

Wenn dem nicht der Fall ist, sollte man so was mal fest in ein Script schrauben oder tippt man das besser immer einzeln ein?
There's this special biologist word we use for "stable". It's "dead". ~ Jack Cohen

Offline Lanzi

  • User
  • Posts: 1.731
3 Einzeiler
« Reply #1 on: 2011/01/27, 22:59:40 »
Er hat Jehova gesagt...

;-)

(sudo wurde erwähnt) ;-)

DonKult

  • Guest
3 Einzeiler
« Reply #2 on: 2011/01/27, 23:47:29 »
Er hat… Er hat… SIE hat!

Hier wird niemand gesteinigt! Niemand! Selbst wenn, ja selbst wenn jemand sudo sagt! … *argh* (Steine fliegen)
;)

Was sollen die den genau bewirken?
Ersteres sieht mir auch wie als hätte es ziemlich die selbe Ergebnis wie 'apt-get dist-upgrade -s' mal davon abgesehen, dass man direkt sieht was passiert und die letzten beiden scheinen mir ein Fall für regex zu sein:
apt-get install '.*fglrx.*'
eventuell um den Flag '--only-upgrade' ergänzt, jenachdem was man den genau will…

Offline agaida

  • User
  • Posts: 1.760
    • http://g-com.eu
3 Einzeiler
« Reply #3 on: 2011/01/28, 00:07:20 »
Was solls bewirken:
1. Zeile - Wirf alles aus, was nicht den Status uptodate hat, also zeige auch Sachen an, die nicht über apt-get ins System gehuscht sind.

2. und 3. Zeile: 'Wirf alles aus, was nicht uptodate ist, filtere die Ausgabe nach einem von mir bestimmten Bestandteil und installiere halt die Pakete, die in diese Kategorie fallen. bei libreoffice und fglrx wusste ich ja, dass die im experimental hängen.

Diesen Befehlsaufbau kann ich nachvollziehen, da ich oft und gerne mit grep arbeite. Regular Expressions und meine Wenigkeit sind nicht unbedingt die engsten und innigsten Freunde. Dieses Manko wird sich in der nächsten Zeit wahrscheinlich ändern, da ich jetzt Programmierung auf dem Tisch habe, wo die Buben dass zu jedem möglichen und unmöglichen Zweck missbraucht haben. Halt ein von Perl auf php portiertes Projekt. Bis ich das aber wirklich flüssig kann, versuche ich alle Form von Regex, die über ein Stern am Ende hinausgehen, zu vermeiden.

Ich habe es als Programmierer über 15 Jahre ohne regex ausgehalten, das bekommt man nicht in wenigen Monaten aus der Schreibe raus und in den Kopf rein.
There's this special biologist word we use for "stable". It's "dead". ~ Jack Cohen

DonKult

  • Guest
3 Einzeiler
« Reply #4 on: 2011/01/28, 00:33:36 »
Quote from: "agaida"
1. Zeile - Wirf alles aus, was nicht den Status uptodate hat, also zeige auch Sachen an, die nicht über apt-get ins System gehuscht sind.

Ah okay, eine Liste von an nicht aktualisierbaren Dateien (da nirgendswo [mehr] verfügbar) gibts tatsächlich so nicht direkt.


Quote from: "agaida"
Regular Expressions und meine Wenigkeit sind nicht unbedingt die engsten und innigsten Freunde.

Das Problem an regulären Ausdrücken ist tatsächlich, dass wenn man sie zur Lösung verwendet man am Ende zwei Probleme hat… (Das eigentliche Problem und die Formulierung des RegEx)

Das '.*whatever.*' war übrigens unnötig, eigentlich hätte es '^.*whatever.*$' heißen müssen, da sonst 'whatever.*' den selben Effekt hat -- allerdings möglicherweise einen anderen als 'whatever*' den die Expansion die die Bash z.B. vornimmt ist nicht das selbe wie ein regulärer Ausdruck……


Ich leide aber mit dir, Perl ist nun wirklich nichts für schwache Nerven. Mir reicht schon alleine diese Joda-if-Syntax 'dann wenn wahr' anstatt dem logischem 'wenn wahr dann'…

Offline agaida

  • User
  • Posts: 1.760
    • http://g-com.eu
3 Einzeiler
« Reply #5 on: 2011/01/28, 05:23:58 »
In meinem ersten Studium hab ich gelernt, alles, was ich lernen sollte und musste, an bestimmten Opportunitätskriterien zu messen. Und ich habe mich eingentlich immer für das einfachste Werkzeug entschieden. Ein Satz, den ich in diesem Zusammenhang nie vergessen werde, stammte von Dr. Zemlin, seines Zeichens EDV-Urgestein an der PHP Potsdam:
Quote
Meine Damen und Herren, dokumentieren Sie, auch den kleinsten Mist. Sonst stehen Sie in einem halben Jahr da und fragen sich: "Wer war der Idiot, der das geschrieben hat und was wollte er damit erreichen?" Ihre Feststellung wird sein: "Mein Gott, was war ich damals clever."

Ich habe es probiert und der Mann hatte recht. Einfachheit zählt und ich muss es bedienen können. Für den halbwegs geübten Schreiber ist regex schnell zu schreiben, für den Aussenstehenden aber kaum zu ändern. Das Nachvollziehen einer bestehenden Expression dauert ein Vielfaches der Zeit der Erstellung. Das hat mich bisher abgeschreckt.

Zum Thema Perl: Ich mag Sprachen nicht, die vor und nach einer wie auch immer gearteten Verschlüsselung gleich aussehen.  :twisted:

EDIT: Die Idee mit dem awk kam mir irgendwann mal, die Ausgabe von apt-show-versions ist halt eine Liste, also kann ich sie zeilenweise bearbeiten. awk finde ich zur Bearbeitung von Listen einfach toll.
There's this special biologist word we use for "stable". It's "dead". ~ Jack Cohen

Offline towo

  • Administrator
  • User
  • *****
  • Posts: 2.702
3 Einzeiler
« Reply #6 on: 2011/01/28, 07:37:46 »
Wenn Du schon awk magst, dann wäre

Code: [Select]
apt-show-versions | grep -v 'upto' | apt-get install $(awk '/^libre/{print $1}') -t experimental

kürzer, weil ein grep gespart. ;)
Ich gehe nicht zum Karneval, ich verleihe nur manchmal mein Gesicht.

Offline agaida

  • User
  • Posts: 1.760
    • http://g-com.eu
3 Einzeiler
« Reply #7 on: 2011/01/28, 07:42:37 »
Recht hat Du, aber da muss ich denken, um das zu verstehen. Das mit dem Denken fällt bei gepipeden greps einfach mal weg ;)
There's this special biologist word we use for "stable". It's "dead". ~ Jack Cohen