Paul Anka – Smells Like Teen Spirit
https://www.youtube.com/watch?v=Y4NCU1cmIkk
Beiträge von DosAmp
-
-
cmdline.txt ist irrelevant, diese Datei wird nur vom Raspberry-Pi-Bootlader für die Kernel-Parameter benutzt, du bootest aber auf einem ganz anderen ARM-Gerät über UEFI.
Wie angegeben wird root=/dev/mmcblk0p2 erst funktionieren, nachdem du die eMMC eingerichtet hast. Der dritte Bus ist hingegen fürs WLAN.
-
Entweder ist etwas an der Kernel-Kommandozeile kaputt (der Kernel hängt statt einem Linux- ein FAT-Dateisystem ein, kann darauf /dev mangels entsprechenden Verzeichnis nicht einhängen und findet dann auch kein Init-Programm) oder ein vorhandenes initramfs (mit einem Namen wie initrd.img) wird nicht zusammen mit dem Kernel geladen, wobei es nicht danach aussieht, als ob ein solches vorhanden ist.
Wenn ich diesen Artikel als Grundlage heranziehe, was gibst du als root-Parameter an? Es ist etwas verwirrend, dass der Guide davon spricht, dass /dev/mmcblk0 die interne eMMC und /dev/mmcblk1 die SD-Karte (und /dev/sda der USB-Stick) sein soll, aber der Kernel zusätzlich Meldungen zu einem dritten MMC-Bus namens mmc2 ausgibt. -
Mag sein, dass es eine elegantere Lösung gibt (irgendeine via set setzbare Shell Option?), weil das ja eine verbreitete Stolperfalle sein dürfte. Ich stand aber bisher nicht vor dem Problem.Ja, für Bash gibt es nullglob:
Zitatnullglob: If set, bash allows patterns which match no files (see Pathname Expansion) to expand to a null string, rather than themselves.
Code/var/empty$ for x in *.mp4; do echo "verarbeite $x"; done verarbeite *.mp4 /var/empty$ shopt -s nullglob /var/empty$ for x in *.mp4; do echo "verarbeite $x"; done
Das funktioniert, weil for ohne in (bzw. in ohne Argumente) gültige Syntax ist.
In diesem Fall sollte es nicht schaden, die Option für das ganze Skript zu setzen. -
Externer Inhalt www.youtube.comInhalte von externen Seiten werden ohne deine Zustimmung nicht automatisch geladen und angezeigt.Durch die Aktivierung der externen Inhalte erklärst du dich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.
Zwischendurch hat man mal die Hertha Fans im Olympiastadion gehört. Wohn ja nur ein paar km entfernt. Ist jetzt ruhiger geworden...Dito mit den FCN-Fans, die sich heute gegen 10 an der Wöhrder Wiese getroffen hatten und dann zum Stadion gezogen sind. Zum Glück gab es zur Ablenkung Füchse zu fangen…
-
-
-
dosamp?Mein Omnibook mit den Thinkpad-600E-Treibern als auch mein kleines Portege nutz(t)en leider nur Standard-4:3-Auflösungen.
Wie man recht gut an der Streckung erahnen kann, ist das nicht nur eine Sache der virtuellen Auflösung. -
Externer Inhalt www.youtube.comInhalte von externen Seiten werden ohne deine Zustimmung nicht automatisch geladen und angezeigt.Durch die Aktivierung der externen Inhalte erklärst du dich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.
-
Was ist x? … was bedeutet artists[$artist]=x?Ein Dummy-Wert. Wie ich weiter getestet habe, reicht es selbst einen leeren String zu setzen.
declare -A definiert ein assoziatives Array, in dem man Zeichenketten nicht nur unter beliebigen Ganzzahlen, sondern Zeichenketten ablegen kann. Das wird hier genutzt, um Künstler nur genau einmal im Array abzulegen, wenngleich als Schlüssel und nicht als Wert (der einfach überschrieben wird, wenn ein Künstler mehrfach abgelegt wird).
Ein solches Array wird ungefähr so serialisiert:${!artists[@]} ist die Syntax, um alle Schlüssel eines Arrays zu erhalten (wieder in Anführungszeichen, damit Leerzeichen keine Wörter auftrennen).
-
alle Künstler genau einmal in einem Bash-Array abzulegen ist auch nicht ganz trivialDie Funktionalität, die gandro seinerseits zu Farbe hingerissen hat, macht es möglich – jede Hashtabelle ist auch ein Set.
BeitragBash 4.0 ist da!
[…]
Mehr Scripting Power
Bash ist die Standard-Shell bei den meisten Linux-Distributionen. Und damit ein bisschen auch Standard-Shell für Shellscripte.
Sprich: Das, womit ich alltägliche Probleme löse, wie mit einem Befehl tausend Fotos verkleinern und umbenenne, mir MindMaps aus HTML-Inhaltsverzeichnisse generieren lasse und Rapidshare-Downloader schreibe.
Als Windowsler kennt man den Komfort der Konsole halt nicht so (im Gegenteil, man hält es meist sogar für Unbeqeuem), aber es ist halt die…
gandro24. Februar 2009 um 11:07
(Haben Macs immer noch bash 3.2 als letzte GPLv2-Version, nachdem alle Skriptsprachen herausgeschmissen und zsh zum Standard gemacht wurde?)
Wohlgemerkt passt das trotzdem nicht mehr gescheit auf eine Zeile.Code
Alles anzeigendeclare -A artists for i in *.mp4; do artist=${i%% - *} # ; artist=${i%%.*.mp4} artists[$artist]=x done for i in "${!artists[@]}"; do if [[ $i != *.mp4 ]]; then mkdir -p /mnt/apex01/pfad/zum/Ziel/"$i" && cp -v "$i"* /mnt/apex01/pfad/zum/Ziel/"$i"/ else cp -v "$i" /mnt/apex01/pfad/zum/Ziel/ fi done -
Leerzeichen im Dateinamen sollten doch eigentlich kein Problem sein, weil ich als Trenner ja sowieso " - " nutze. (Also Leerzeichen Bindestrich Leerzeichen). Ich weiß halt offengestanden nicht mal wirklich wie ich die Frage formulieren soll.Keine Ahnung wie deine Dateinamen aussehen, aber die Schleife stolpert trotzdem über alle anderen Leerzeichen (zumindest vor dem Bindestrich, falls vorhanden) im Namen.
Aus einem Verzeichnis mit dem InhaltZitatDude - bla.mp4
Foo Bar - Baz.mp4
Kein Künstler.mp4
macht deine Schleife mit dem standardmäßigen Worttrenner IFS (enthält Leerzeichen, Tabulator, Zeilenumbruch) folgende Zuweisungen an die Variable i:ZitatDude
Foo
Bar
Kein
Künstler.mp4Sowohl für die Schleifenliste als auch den -inhalt (wenn du nicht "$i" statt $i schreiben willst) musst du den Worttrenner daher vorübergehend abschwächen. Mit sort -u bekommst du Duplikate für den gleichen Künstler entfernt:
CodeORIG_IFS=$IFS; IFS=$'\n'; for i in $(find . -type f -name "*.mp4" -printf "%f\n" | awk -F ' - ' '{print $1}' | sort -u); do cp -v $i* /mnt/apex01/pfad/zum/Ziel/$i/; done; IFS=$ORIG_IFS; unset ORIG_IFSDiese Befehlszeile kann keine Dateien ohne Künstler kopieren (wegen dem Schrägstrich am Ende des cp-Befehls) und legt nach wie vor keine Zielverzeichnisse an.
Das Gefrickel mit IFS lässt sich in diesem Fall auch nicht mit find … -print0 | xargs -0 … vermeiden, da xargs keine Subshell ausführen kann.Eine weitere Lösung, die nur dateiweise kopiert (alle Künstler genau einmal in einem Bash-Array abzulegen ist auch nicht ganz trivial), aber dafür ganz ohne find/awk auskommt:
-
Damit hab ich derzeit folgende Probleme:
- trotz dem -v Schalter bekomme ich keine Ausgabe.
- Gelegentlich läuft sich der Mist tot und muss von Hand via Ctrl+C gestoppt werden. Insbesondere wenn während des Kopiervorgangs Dateien hinzukommen od. wenn der Zielordner nicht vorhanden ist.Ich fürchte, das kann man nicht ganz so einfach reparieren. Mit Anführungszeichen kann man die Shell davon abhalten, Dateinamen mit Leerzeichen aufzuteilen, aber dann scheitert es trotzdem an Künstlern mit Leerzeichen bzw. Dateien ohne Künstler.
Code
Alles anzeigen$ ls -1 aaah.doc 'foo - bar.mp3' 'kein künstler.xlsx' 'test fighters - bla bla.mp3' 'test fighters - blub.mp3' $ for i in $(ls | awk -F ' - ' '{print $1}'); do echo cp -v "$i"* "/zielverzeichnis/$i" ; done cp -v aaah.doc /zielverzeichnis/aaah.doc cp -v foo - bar.mp3 /zielverzeichnis/foo cp -v test fighters - bla bla.mp3 test fighters - blub.mp3 /zielverzeichnis/test cp -v fighters* /zielverzeichnis/fighters cp -v test fighters - bla bla.mp3 test fighters - blub.mp3 /zielverzeichnis/test cp -v fighters* /zielverzeichnis/fightersMan kann es etwas verbessern, wenn man der Shell mitteilt, dass nur Zeilenende als Worttrenner zu nutzen ist. Trotzdem wird bei einem Künstler mit X Dateien jede X-mal kopiert.
Code$ IFS=$'\n'; for i in $(ls | awk -F ' - ' '{print $1}'); do echo cp -v "$i"* "/zielverzeichnis/$i" ; done; IFS=$' \t\n' cp -v aaah.doc /zielverzeichnis/aaah.doc cp -v foo - bar.mp3 /zielverzeichnis/foo cp -v kein künstler.xlsx /zielverzeichnis/kein künstler.xlsx cp -v test fighters - bla bla.mp3 test fighters - blub.mp3 /zielverzeichnis/test fighters cp -v test fighters - bla bla.mp3 test fighters - blub.mp3 /zielverzeichnis/test fightersWenn man schon awk nutzt, kann man damit natürlich ein kleines Programm schreiben, hier zur Verdeutlichung über mehrere Zeilen (wie in Shell- oder Javascript-Syntax beendet entweder ein Semikolon oder eine neue Zeile einen Befehl). Die erzeugten Shell-Befehle werden tatsächlich ausgeführt, wenn man die gesamte Befehlszeile in eval $( ... ) steckt.
Code
Alles anzeigen$ find -maxdepth 1 -type f -printf "%f\n" | \ awk -v "destdir=/zielverzeichnis" -F ' - ' '{ filename=$0 if (NF > 1) { subdir="/" $1 } else { subdir="" } target=destdir subdir "/" print "cp -v \"" filename "\" \"" target "\"" }' cp -v "test fighters - bla bla.mp3" "/zielverzeichnis/test fighters/" cp -v "kein künstler.xlsx" "/zielverzeichnis/" cp -v "test fighters - blub.mp3" "/zielverzeichnis/test fighters/" cp -v "aaah.doc" "/zielverzeichnis/" cp -v "foo - bar.mp3" "/zielverzeichnis/foo/"Das könnte man nun noch weiter ausbauen, etwa durch ein zusätzliches
oder indem man install statt cp missbraucht. -
Last Christmas, you played me this song
And the very next day, you played it again
This year, to spare me my ears
I'm plugging them up with seashellsExterner Inhalt www.youtube.comInhalte von externen Seiten werden ohne deine Zustimmung nicht automatisch geladen und angezeigt.Durch die Aktivierung der externen Inhalte erklärst du dich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt. -
Nur habe ich bisher keine VM gefunden, die physische Platte in die VM holt.VirtualBox (Stichwort createrawvmdk) und natürlich diverse VMware-Produkte können ein VMDK-Image erstellen und einhängen, das eine physische Platte repräsentiert.
-
Mit VGA kommt die mit meinen Full-HD-Fernseher klar, was mich schon etwas wundert.Ein RAMDAC, der einen professionellen Röhrenbildschirm mit 1600×1200 oder mehr (John Carmacks 28-Zoll-Arbeitsgerät lief angeblich auf 2048×1152) bei vernünftiger Bildwiederholrate ansteuern kann, sollte schon rein rechnerisch kein Problem mit 1920×1080 bei nur 60 Hz haben.
Nicht umsonst haben Flachbildfernseher ihren Ursprung in der Computer-Branche. -
Es geht nicht darum, den 1920×1200-Monitor gewaltsam mit der Ati Radeon 9200 AGP zu vereinenEs ging mir auch nur darum behilflich zu sein herauszufinden, ob es sich tatsächlich um genau diese Einschränkung der Hardware handelt, die sich meist darin niederschlägt dass hohe Auflösungen erst gar nicht zur Verfügung stehen, oder eher einen Defekt oder einen Defizit der Software.
Wie Dirk sagt ist letzteres unwahrscheinlich, solange der Kernel auch keine Meldungen ausgibt, wenn das Bild flackert. -
Im IRC wurde mir seinerseits mitgeteilt, dass bezüglich DVI-Anbindung die Digitalausgabe vieler AGP-Grafikkarten hinter der Bandbreite, die ein einzelner DVI-Link bzw. HDMI <1.3 zu leisten vermag, deutlich hinterherhängt. Mit einer ATI Radeon 9000 Pro (eigentlich Sparversion der 8500) hatte ich da eigentlich keine Probleme 1920×1080@60 zu betreiben, wohl aber eine Nvidia GeForce 4 Ti 4200 die nur genügend Leistung über den VGA-DAC bot.
Mit einem ausreichend geschirmten Kabel ist 1920×1200 testweise auch über VGA zu ertragen, falls das ausgeschlossen werden soll. -
Ist das das Release, was ich damals durch Ausleihen von der Bib ins Netz gestellt habe?Ich habe das in diesem Fall aus einer Kyroflux-Sammlung, die auch solche Perlen wie Karstadt Space Job enthält.
https://archive.org/details/@dfxthomas -

Doors, der wohl deutscheste Desktop für Windows 3.1.
Es ist nicht weiter verwunderlich, dass das Fliegenpilz-Symbol in der Menüleiste intern als APFEL_BMP geführt wird.