Codeschnipsel
Programmfragmente bei denen es nicht lohnt sie grossartig zu veröffentlichen, die irgendwie aber doch ganz nützlich sind.
trans.sh
Wenn man "mal schnell" jemandem ein Foto zeigen mag, etc, es aber nicht per Mail oder Instant Messenger schicken kann oder will ist dieser Schnipsel sehr hilfreich:
Läd die Datei auf einen Webserver und gibt die URL zum pasten zurück.
Optional: kopiert URL in Zwischenablage
#!/bin/sh
serverdir='s2.enemy.org:~/public_html/scp/' #change!
weburl=http://s2.enemy.org/~jojoo/scp/ #change!
chmod a+rx ~/trans/*
scp ~/trans/* $serverdir
for i in ~/trans/* ; do
echo "${weburl}`basename ${i}`" ;
echo "${weburl}`basename ${i}`" | pbcopy #OPTIONAL, nur für OSX
done
rm ~/trans/*
bigfiles.pl
Spuckt die Dateien aus die über 1MB gross sind, zusätzlich die grösste datei
#!/usr/bin/perl -w
@ARGV = qw(.) unless @ARGV;
use File::Find;
use warnings;
my ($saved_size, $saved_name) = (-1, '');
sub biggest {
return unless -f && -s > $saved_size;
$saved_size = -s;
$saved_name = $File::Find::name;
if ($saved_size > 1000000) {
$size = int($saved_size/1000000);
print "$saved_name \t $size MB\n";
}
}
find (\&biggest, @ARGV);
print "Biggest file $saved_name is $saved_size bytes\n";
Videos mit nc "streamen"
Wenn der eine Rechner Filme auf der Platte hat, man sie aber auf dem anderen ansehen möchte:
Am Computer wo der Film liegt
cat Film.avi | nc -lp 12345
Am Computer wo man den Film sehen möchte:
nc serverip 12345 | mplayer -
geht natürlich genauso mit xine bzw jedem Programm wo man von stdin lesen kann.
Big Endian UTF-8 auf ASCII
Kann ganz nützlich sein wenn man Txtfiles mit Stickies von OSX erstellt, diese mit komsichen einstellungen abspeichert und sie dann auf nem GNU/Linux öffnen will.
Ich habe das programm auch für Python geschrieben und da von einem anderem ansatz her und nicht so seltsam wie dieses, aber das .py is in den gefährlichen untiefen von /tmp/ verschollen ;)
#!/usr/bin/perl -w
$file = $ARGV[0];
open("FILE", "$file");
@cont = <FILE>;
close(FILE);
foreach $realline (@cont) {
@neu = split (//, $realline);
$i=0;
foreach $chars (@neu) {
$i++;
if (($i == 0) || !($i % 2)){
print "$chars";
}
}
}