Sonntag, 3. November 2013
(Aus dem Archiv) Download page with all linked files
Link zu diesem Artikel
Der vorliegende Artikel habe ich ursprünglich irgendwann einmal ab 2002 auf meinem damaligen Linux-Entwicklungsserver im Web publiziert. Da ich das bloggen erst 2005 entdeckt habe, waren die Tipps in einer grossen HTML-Seite untergebracht. Anlässlich einer Aufräumaktion auf dem Server habe ich mich entschieden, die „Perlen“ über meine heutige Kommunikationsplattform ins Web zu posaunen. Seitdem ich die Artikel verfasst habe, sind viele Tage ins Land gegangen — ob der Artikel noch Gültigkeit hat, entscheidet der geneigte Leser selber.
When the end of the semester gets close, I usually get into a rush and try to download all online material of the lectures. Being tired of clicking through thousands of pages, I remembered wget. A very useful tool, not just to download … err … thumbs and their linked close-ups ;-)
The following command will do the trick:
wget -r -np -nd <url>
You end up having all links recursively downloaded -r, but tell wget not the step up a level -np, and finally, we don’t want to have put the files in nested directories -nd. That’s it, alreay, straight and steady.
To just download files of special type, I recommend adding the following switch:
wget -r -np -nd -A *.pdf <url>
Tags: Bash, Download, Recursive, wget
Labels: Linux
Sonntag, 3. November 2013
(Aus dem Archiv) Batch rename directories
Link zu diesem Artikel
Der vorliegende Artikel habe ich ursprünglich irgendwann einmal ab 2002 auf meinem damaligen Linux-Entwicklungsserver im Web publiziert. Da ich das bloggen erst 2005 entdeckt habe, waren die Tipps in einer grossen HTML-Seite untergebracht. Anlässlich einer Aufräumaktion auf dem Server habe ich mich entschieden, die „Perlen“ über meine heutige Kommunikationsplattform ins Web zu posaunen. Seitdem ich die Artikel verfasst habe, sind viele Tage ins Land gegangen — ob der Artikel noch Gültigkeit hat, entscheidet der geneigte Leser selber.
With this little script, you can batch rename directories in current folder AND subfolders
#!/bin/sh
SEARCH="set"
REPLACE="s"
for ITEMOLD in `find . -type d`
do
echo "Processing '$ITEMOLD'"
ITEMNEW=`echo $ITEMOLD | sed "s/$SEARCH/$REPLACE/g"`
#echo "After search/replace: '$ITEMNEW'"
if [ $ITEMOLD != $ITEMNEW ]
then
if [ ! -d "$ITEMNEW" ]
then
echo "Attempting to rename '$ITEMOLD' to '$ITEMNEW'"
mv "$ITEMOLD" "$ITEMNEW"
if [ ! -d "$ITEMNEW" ]
then
echo "[-] Renaming seems to have failed - '$ITEMNEW' doesn't exist"
exit 1
else
echo "[+] Success"
fi
else
echo "[-] '$ITEMNEW' already exists"
fi
else
echo "[i] '$ITEMOLD' does not match expression, skipping"
fi
echo ""
done
exit 0
Tags: Bash, Recursive, rename
Labels: Linux
Sonntag, 3. November 2013
(Aus dem Archiv) Find files greater than x Bytes
Link zu diesem Artikel
Der vorliegende Artikel habe ich ursprünglich irgendwann einmal ab 2002 auf meinem damaligen Linux-Entwicklungsserver im Web publiziert. Da ich das bloggen erst 2005 entdeckt habe, waren die Tipps in einer grossen HTML-Seite untergebracht. Anlässlich einer Aufräumaktion auf dem Server habe ich mich entschieden, die „Perlen“ über meine heutige Kommunikationsplattform ins Web zu posaunen. Seitdem ich die Artikel verfasst habe, sind viele Tage ins Land gegangen — ob der Artikel noch Gültigkeit hat, entscheidet der geneigte Leser selber.
In my special case, I used the following command to separate thumbnails (expected smaller than 10KB) and closeups (expected to be greater than 10KB) in a web-dump.
find . -type f -name "*.jpg" -size +10240c -exec mv '{}' ~/newdir/ ';'
Tags: Bash, find, mv
Labels: Linux
Sonntag, 3. November 2013
(Aus dem Archiv) Remove file types except those which contain ‚foobar‘
Link zu diesem Artikel
Der vorliegende Artikel habe ich ursprünglich irgendwann einmal ab 2002 auf meinem damaligen Linux-Entwicklungsserver im Web publiziert. Da ich das bloggen erst 2005 entdeckt habe, waren die Tipps in einer grossen HTML-Seite untergebracht. Anlässlich einer Aufräumaktion auf dem Server habe ich mich entschieden, die „Perlen“ über meine heutige Kommunikationsplattform ins Web zu posaunen. Seitdem ich die Artikel verfasst habe, sind viele Tage ins Land gegangen — ob der Artikel noch Gültigkeit hat, entscheidet der geneigte Leser selber.
My linux servers hosts my complete electronic Music Library, sharing it using daapd. All downloads come with a mess of additional files like covers, cue-sheets, nfo-files etc. Usually, I’m too lazy to get rid of’em directly after the download. As time passed by, everything got messed up with every new album I’ve leeched. Instead of going through every directory – and there are many of them – I used another fine find-command to remove anything not an mp3-file within my MP3-Folder:
find . -type f \! -name "*.mp3" -exec rm '{}' ';'
Tags: Bash, find, rm
Labels: Linux
Sonntag, 3. November 2013
(Aus dem Archiv) Remove Apple-specific files
Link zu diesem Artikel
Der vorliegende Artikel habe ich ursprünglich irgendwann einmal ab 2002 auf meinem damaligen Linux-Entwicklungsserver im Web publiziert. Da ich das bloggen erst 2005 entdeckt habe, waren die Tipps in einer grossen HTML-Seite untergebracht. Anlässlich einer Aufräumaktion auf dem Server habe ich mich entschieden, die „Perlen“ über meine heutige Kommunikationsplattform ins Web zu posaunen. Seitdem ich die Artikel verfasst habe, sind viele Tage ins Land gegangen — ob der Artikel noch Gültigkeit hat, entscheidet der geneigte Leser selber.
.DS_Store contains information on how to display folders; e.g. list view. Such files are of no use for Linux- and Windows-users. The following command finds all .DS_Store-files in the current directory and every subdirectory and deletes it immediately. I put it in a cron-job, which is performed every five minutes.
find . -type f -name .DS_Store -exec rm -f '{}' ';'
The next thing is about these fucking Resource Forks. If I could, I would travel back through time and eliminate the person who created it. Anyway, they’re among us now, and we can’t get rid of’em. Well, at least they serve no needs on a Linux-server, so it’s (usually) safe to delete them. As example, if you drag photos from iPhoto to a Samba-Share, not only the JPGs are stored, but also ._-files with thumbnails in it. Well then, good bye little bastards:
find . -type f -name ._* -exec rm -f '{}' ';'
Tags: Apple, dot-Files, DS_Store, Hidden Files, Linux, Mac OS X, Samba, Windows
Labels: Apple
Freitag, 25. Oktober 2013
Graustufenbilder mit ImageMagick in Schwarz-Weiss-Bilder umwandeln
Link zu diesem Artikel
Kürzlich hat Stephanie ihre Cumulus-Karte verlegt. Damit sie weiterhin bei jedem Einkauf eifrig Punkte sammeln kann, habe ich ihr meinen Barcode als Bild eingescannt und wollte diesen ausdrucken, um ihn auf die Rückseite der Supercard (Frevel!) aufzukleben.
Damit der Barcode-Leser der Kasse den Scan auch möglichst einwandfrei lesen kann, wollte ich den Scan aber von Farbe resp. Graustufen in ein monochromes Bild umwandeln. Mittels ImageMagicks convert geht das ganz simpel:
$ convert "Cumulus Barcode.png" -colorspace gray -auto-level -threshold 50% "Cumulus Barcode bw.png"
Indem man mit den Prozentwerten bei -threshold spielt, kann man den Schwellenwert hinunter oder heraufsetzen, basierend auf dem ein Pixel als schwarz oder weiss markiert wird. Ein Wert von 75% resultiert in mehr schwarzen Pixeln, ein Wert von 25% in mehr weissen Pixeln.
Tags: B/W, convert, How-To, ImageMagick, Monochrom, OCR, OSS, Scan
Labels: Linux
Donnerstag, 24. Oktober 2013
Mit PowerShell Dateien finden, die eine bestimmte Zeichenkette angehängt haben
Link zu diesem Artikel
Folgendes PowerShell-Script zeigt mir in einem Verzeichnis mit unzähligen PDF-Dateien diejenigen an, für welche es eine Version mit %NAMEN%.pdf sowie %NAMEN%-native.pdf gibt:
$duplicateIndicator = "-native"
function Get-ScriptDirectory {
$Invocation = (Get-Variable MyInvocation -Scope 1).Value
Split-Path $Invocation.MyCommand.Path
}
$scriptDir = Get-ScriptDirectory
$pattern = "*" + $duplicateIndicator + ".pdf"
Write-Host "Looking for $pattern ..."
Write-Host ""
$counter = 0
Dir $pattern | ForEach-Object {
$counter++
$duplicate = $_.name
$original = $duplicate -replace $duplicateIndicator, ""
$originalPath = $scriptDir + '\' + $original
#Write-Host $duplicate
#Write-Host $original
#Write-Host "Looking for original file $originalPath"
$fileExists = Test-Path $originalPath
If ($fileExists) {
Write-Host "Found duplicate for "
Write-Host " $original"
Write-Host ""
}
#Dir $original
}
Write-Host "Scanned $counter file(s)."
Write-Host "Done."
Write-Host ""
Tags: Dateien, Duplicates, Duplikate, PowerShell, Windows
Labels: Programmierung
Donnerstag, 24. Oktober 2013
biber findet die Datenquelle nicht mehr
Link zu diesem Artikel
Kürzlich war ich auf einem Windows-Laptop mit folgendem Problem konfrontiert:
data source C:\Users\mario\AppData\Local\Temp\par-476f6e7a616c6f\cache-63038a22a6dc2bcfc65352f2f3a3448ce3f3ab68\recode_data.xml not found in.
Bei biber handelt es sich nicht um das Tier, sondern um ein Hilfstool aus dem LaTeX-Universum zur Verarbeitung von BibTeX Bibliographiedatenbanken.
Zuerst machte ich Microsoft und die kürzlich von mir aktivierten Offline-Dateien verantwortlich. Schlussendlich musste ich aber realisieren, dass das Problem rein von biber selbst zu stammen scheint. Nachdem ich den Ordner C:\Users\mario\AppData\Local\Temp\par-476f6e7a616c6f\ gelöscht hatte, lief auch biber wieder ohne Probleme durch.
Via: biber first aid for “data source not found”
Tags: biber, BibTeX, Latex, TeX, Windows
Labels: Wissenschaft
Mittwoch, 23. Oktober 2013
Mit Scripts generierte ICS-Dateien mit dem korrekten Zeichensatz in Google Calendar anzeigen
Link zu diesem Artikel
Folgender kleiner Text (hier: in einem PHP-Script) hilft:
...
header('Content-Type: text/calendar; charset=utf-8');
header('Content-Disposition: inline; filename="calendar.ics"');
...
Gibt man das Charset nicht explizit an, erscheinen in Google Calendar statt den Sonderzeichen schwarze Rhomben mit einem Fragezeichen: �
Via: Character encoding in external public calendars – Why is Danish UTF-8 character not show correctly?
Tags: Google Calendar, ICS, PHP
Labels: Programmierung
Mittwoch, 23. Oktober 2013
Mehrere Dateien in einem Rutsch mit PowerShell umbenennen
Link zu diesem Artikel
Dir | Rename-Item –NewName { $_.name –replace ".jpg",".jpeg" }
Tags: How-To, PowerShell, Windows
Labels: Programmierung