Kurze Fragen - Kurze Antworten

Gehe im HMM auf die Seite Keyboard Bezel und schaue direkt unter der Überschrift, welche Schritte hierzu zuvor durchgeführt werden müssen.

Wie ich im Posting darueber schrieb, stammt die Anweisung zum Entfernen von WLAN-Karte und Fan vor dem Keyboard Assembly aus dem HMM, genau von dort. Wir wissen aber, dass das HMM nicht immer korrekt ist. In diesem Fall koennen WLAN-Karte und Fan drin bleiben - ich habe das Keyboard Assembly gestern getauscht,ohne den Ausbau beider Teile.
 
Mal dumm gefragt:
Ich habe die letzten Jahre immer Versandetiketten im A4 Format für meinen Drucker geholt, in verschiedenen Postfilialen.
Diese waren kompatibel zum DHL Etikett, was man nach einem Onlinekauf herunterladen konnte.

Jetzt gibt es wohl nur mehr A5 Etiketten, angeblich eine interne Umstellung bei DHL!?

Meine Frage ist nun: Wie drucke ich am Einfachsten das A4 PDF "halb" auf das neue A5 Etikett ...?
 
Taugt ein Bash-Script, um größere Text-Files „umzuformatieren“?
Ich möchte mir aus verschiedenen Domain-Listen Zone-Files für meinen BIND-Server generieren. Und das möglichst automatisch. Dazu müsste sowas…

…zeilenweise in sowas…

zone "www.novirus.com" {type master; file "/etc/bind/blockeddomain.hosts";};
zone "www.creditcardpls.co.uk" {type master; file "/etc/bind/blockeddomain.hosts";};
…transformiert werden. Pro Datei zwischen 20.000 und 50.000 Zeilen. Da der Server in einem Docker-Container läuft, sollte das im Idealfall mit möglichst einfachen Mitteln geschehen. Machbar?
 
Sollte trivial sein. Bei solchen kleinen Datenmengen sollte sogar die naive Methode

while read line
do
echo "zone "$line" {type master; file "/etc/bind/blockeddomain.hosts";};"
done < /pfad/zu/datei

gehen.
 
Das ist ja erfreulich einfach. Danke!

- - - Beitrag zusammengeführt - - -

Es funktioniert…fast.
Die meisten Einträge werden korrekt transformiert, mit ein paar gibt es aber Probleme.

Urpsung:
original.JPG

Formatierte Version:
formatiert.JPG

Den Code habe ich noch angepasst, damit auch die letzte Zeile mit eingelesen wird, und dass die " " gesetzt werden.
while read -r line || [[ -n "$line" ]]; do
echo -e "zone \042"${line}"\042 {type master; file \042/etc/namedb/blockeddomain.hosts\042;}; " >> /output
done < /input

Kann es sein, dass manche Domain-Namen als Sonderzeichen interpretiert werden? Und wie lässt sich das verhindern?
 
Das Escapen der Gaensefuesschen sieht seltsam aus - so funktioniert es:
Code:
#!/bin/bash
while read -r line || [[ -n "$line" ]]; do
echo "zone \"${line}\" {type master; file \"/etc/namedb/blockeddomain.hosts\";}; "
done
Das obige als t.sh, dann chmod +x t.sh und Aufruf als:
Code:
./t.sh < /input > /output

Backslash vor " escaped dieses im String. Dann braucht echo kein -e, vermutlich sind bei Dir die Zahlen am Anfang der Domains in die Oktaldigitfolge nach \042 aufgenommen worden, z.B. bei der ersten Zeile
Code:
echo -e "zone \04263810.com"
 
Zuletzt bearbeitet:
Klar, du kannst alle typischen Bluetooth-Geräte anschließen und verwenden.
 
Seitenanpassung im Druckertreiber.

Das geht leider nicht, da das Ursprungsetikett, was man von DHL als PDF erhält, immer A4 ist.

Aber es ist letztendlich einfacher als gedacht:
Einfach einen Screenshot von der relevanten Hälfte des PDFs machen, in Word in ein A5 Dokument einfügen und drucken. Funktioniert 1a - danke für den Anstoß, manchmal kann es echt so einfach sein, dass man alleine nicht drauf kommt :)
 
Das geht leider nicht, da das Ursprungsetikett, was man von DHL als PDF erhält, immer A4 ist.

Aber es ist letztendlich einfacher als gedacht:
Einfach einen Screenshot von der relevanten Hälfte des PDFs machen, in Word in ein A5 Dokument einfügen und drucken. Funktioniert 1a - danke für den Anstoß, manchmal kann es echt so einfach sein, dass man alleine nicht drauf kommt :)
Warum so kompliziert.
In den Eigenschafen des Druckers sagt man dem "Du hast A5 papier drin".
Und man wählt im Dialog nicht "Benutzderdefinieten Maßstab" sondern "übergroße seiten verkleinern"

Schwups kann man A0 auf A6 drucken :thumbsup:
Ob man allerdings was lesen kann ist eine andere Baustelle
 
Dann ist aber der ganze Kladderadatsch auf dem Etikett, auch das, was man eigentlich nicht da drauf braucht.
Auf das A5-Etikett soll nur eine Hälfte des Blattes gedruckt werden, nämlich das eigentliche Etikett.
Ich behelfe mir da immer mit LibreOffice draw, da kann man die PDF in ihre Einzelteile zerlegen
 
Das nötige Stichwort ist "Kacheldruck". Du wählst im Druckertreiber Kacheldruck mit 2 Kacheln aus, diese dann so skalieren, dass die gewünschte Seite voll auf DinA4 passt. Ausdrucken tust Du dann nur die benötigte Seite.

Grüße Thomas
 
Auf die Gefahr hin den Rahmen dieses Threads zu sprengen…
Für meinen DNS-Server habe ich mir ein Bash-Script erstellt, welches Hosts-Files mit Malware-Domains aus diversen Quellen zieht und zu einem bind RPZ zusammenfügt. Das Resultierende File ist knapp 25 MB groß und hat gut 750.000 (einzigartige) Zeilen.

domains_downloads=( "https://raw.githubusercontent.com/StevenBlack/hosts/master/data/StevenBlack/hosts" "http://winhelp2002.mvps.org/hosts.txt" "https://raw.githubusercontent.com/mitchellkrogza/Badd-Boyz-Hosts/master/hosts" "https://zerodot1.gitlab.io/CoinBlockerLists/hosts_browser" )
for dl_link in "${domains_downloads[@]}"; do
echo "Lade Domains (Datei "$dl_link")..."
wget -O /srv/vol1/DockerRuntime/dns/bind/etc/dl_hosts -q "$dl_link"
sed '/#/d' /srv/vol1/DockerRuntime/dns/bind/etc/dl_hosts | sed 's/.$//' > /srv/vol1/DockerRuntime/dns/bind/etc/dl_hosts_temp
while read -r line || [[ -n "$line" ]]; do
if [ ${#line} -ge 11 ] && [ ${#line} -lt 245 ]
then
cutline=$( echo ${line} | cut -c9- )
echo "${cutline} IN CNAME ." >> /srv/vol1/DockerRuntime/dns/bind/etc/temp
fi
done < /srv/vol1/DockerRuntime/dns/bind/etc/dl_hosts_temp
rm -f /srv/vol1/DockerRuntime/dns/bind/etc/dl_hosts
rm -f /srv/vol1/DockerRuntime/dns/bind/etc/dl_hosts_temp
echo "Domains verarbeitet. (Datei "$dl_link")"
done

Die temp-Datei, in welche in obigem Code geschrieben wird, dürfte aufgrund doppelter Einträge um ein Vielfaches größer sein.
Jetzt zum Problem: Um die Daten zu Verarbeiten braucht mein Server ca. 1e Stunde. Ist da noch Optimierungspotential (der Rest des Files schaut analog zu obigem Ausschnitt aus, nur die Filterparameter variieren je nach Quelle), oder ist der kleine Pentium J3710 (6,5W TDP) damit einfach am Ende seiner Kräfte?

Edit:
code.png
 
Zuletzt bearbeitet:
Wenn ich dein Script richtig lese suchst du duplicate im dem du alle 750000+ Zeilen durchsuchst - für jede einzelne Zeile.
Ich denke es sollte deutlich schneller gehen wenn du erst sortierst (sort) und dann alle doppelten Zeilen mit uniq entfernst.
 
Ich denke es sollte deutlich schneller gehen wenn du erst sortierst (sort) und dann alle doppelten Zeilen mit uniq entfernst.

Das passiert schon so und ist auch nicht der problematische Teil :).

In dem Script wird:
wget: ein Textfile heruntergeladen
sed: Kommentarzeilen (#) entfernt und das Resultat in eine neue Datei dl_hosts_temp geschrieben
while read: In jeder Zeile der dl_hosts_temp wird…
…cut: die ersten 8 Zeichen entfernt
…echo: „ IN CNAME“ angehängt und Zeilenweise in die Datei temp geschrieben

Und dass mehrere Male in einer for-Schleife für verschiedene Download-Quellen. Das temp File enthält, wenn es fertig ist, gut 800.000 Einträge bei ca. 26 MB und wird durch sort und uniq auf 750.000 Einträge und 25 MB bereinigt.
Dauer nur für die Erstellung des temp-Files: 65min.
 
Das passiert schon so und ist auch nicht der problematische Teil :).
In dem Script wird:
wget: ein Textfile heruntergeladen
sed: Kommentarzeilen (#) entfernt und das Resultat in eine neue Datei dl_hosts_temp geschrieben
while read: In jeder Zeile der dl_hosts_temp wird…
…cut: die ersten 8 Zeichen entfernt
…echo: „ IN CNAME“ angehängt und Zeilenweise in die Datei temp geschrieben
Und dass mehrere Male in einer for-Schleife für verschiedene Download-Quellen. Das temp File enthält, wenn es fertig ist, gut 800.000 Einträge bei ca. 26 MB und wird durch sort und uniq auf 750.000 Einträge und 25 MB bereinigt.
Dauer nur für die Erstellung des temp-Files: 65min.

Ich habe das schon verstanden - dennoch erschließt sich mir nicht warum du das Zeilenweise machst - das dauert entsprechend. Mit cut könntest du entspannt alles bis zum ersten Leerzeichen " " (als delimiter) abschneiden (entfernt 0.0.0.0) auf die gesamte Datei, dann mit sed den Zeilenumbruch durch das "IN CNAME . /n" ersetzen ( /g für alle Vorkommen) - alternativ einfach am Zeilenende.
 
  • ok1.de
  • ok2.de
  • thinkstore24.de
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen

Werbung

Zurück
Oben