for i in `ls -1`; do echo -n "$i:" ;echo $i |wc -m ; done | awk -F':' '{print $2 ":" $1}' | sort -n
Artikel mit Tag bash
Verwandte Tags
awk linux Linux APT Bash Browser c250 capslock CUPS Debian debugging dhcp EOS escape EXIF FAT32 fdisk Foto Gentoo grep he hurricaneelectric Internet Explorer ipv6 Irssi JPEG kde LaTeX logitech md Musik Netzwerk nopaste NTP openwrt partition Proxy Quake raid Samba Security Shell Shellscript SSH subversion svn telnet Thinkpad Tuning UDEV Unicode vfat Video webcam Windows X11 X41 xmodmap XVIDDonnerstag, 19. Januar 2012
Länge von Dateinamen ermitteln
Da ich gerade die Länge von Dateinamen herausfinden musste und mir nicht eingefallen ist wie man das elegant und schnell lösen könnte hab ich mir in der Shell eben was zusammengehackt. Vielleicht weiß jemand eine bessere Lösung:
for i in `ls -1`; do echo -n "$i:" ;echo $i |wc -m ; done | awk -F':' '{print $2 ":" $1}' | sort -n
for i in `ls -1`; do echo -n "$i:" ;echo $i |wc -m ; done | awk -F':' '{print $2 ":" $1}' | sort -n
Montag, 24. April 2006
Muschel Tricks
Das die Bourne Shell Platzhalter erlaubt dürfte niemanden wirklich überraschen.
Diese Platzhalter können bei beliebigen Befehlen verwendet werden, so zum Beispiel auch bei scp. Wie kopiert man aber nun am geschicktesten IMG_0082.JPG und IMG_0084.JPG auf einen entfernten Rechner? Benutzt man hier Platzhalter
so wird zuviel kopiert. Glücklicherweise kann man sich hier einer Zeichenklasse bedienen, wie sie von regulären Ausdrücken bekannt ist.
Gerade bei vielen Dateinamen die sich nur gering unterscheiden kann dieser kleine Trick einiges an Tipparbeit ersparen.
uwe@krusty ~/temp/test $ ls IMG_*
IMG_0082.JPG IMG_0088.JPG IMG_0090.JPG IMG_0092.JPG IMG_0096.JPG
IMG_0084.JPG IMG_0089.JPG IMG_0091.JPG IMG_0095.JPG IMG_0098.JPG
uwe@krusty ~/temp/test $ ls IMG_00?2.JPG
IMG_0082.JPG IMG_0092.JPG
Diese Platzhalter können bei beliebigen Befehlen verwendet werden, so zum Beispiel auch bei scp. Wie kopiert man aber nun am geschicktesten IMG_0082.JPG und IMG_0084.JPG auf einen entfernten Rechner? Benutzt man hier Platzhalter
uwe@krusty ~/temp/test $ scp IMG_008?.JPG 192.68.68.235:
IMG_0082.JPG 100% 1062KB 1.0MB/s 00:00
IMG_0084.JPG 100% 335KB 335.1KB/s 00:00
IMG_0088.JPG 100% 1302KB 1.3MB/s 00:00
IMG_0089.JPG 100% 1071KB 1.1MB/s 00:00
so wird zuviel kopiert. Glücklicherweise kann man sich hier einer Zeichenklasse bedienen, wie sie von regulären Ausdrücken bekannt ist.
uwe@krusty ~/temp/test $ scp IMG_008[24].JPG 192.68.68.235:
IMG_0082.JPG 100% 1062KB 1.0MB/s 00:00
IMG_0084.JPG 100% 335KB 335.1KB/s 00:00
Gerade bei vielen Dateinamen die sich nur gering unterscheiden kann dieser kleine Trick einiges an Tipparbeit ersparen.
Freitag, 16. September 2005
Gewechselt reloaded
Das man bei KDE das Wallpaper bei jedem Start einfach wechseln kann ist ja nun nichts neues mehr. Dennoch ist die Methode nicht gerade elegant und als ich etwas in den Gentoo Foren in den Documentation, Tips & Tricks herumgestöbert habe ist mir ein Beitrag aufgefallen. Um einen Vorgang unter KDE zu automatisieren wurde DCOP in benutzt und mir kam sofort in den Sinn das sich garantiert auch mein Problem mit Hilfe von DCOP lösen lassen würde. Knapp zehn Minuten API Studium später war dann die erste saubere Version meines Wallpaper Changers fertig gestellt.
(der tail/head-teil ist auch raus, nachdem mir wieder eingefallen ist, dass das ganze mit sed sehr viel einfacher geht :-))
#!/bin/bash
SOURCELOC="$HOME/wallpapers/"
FLIST=`ls ${SOURCELOC}`
NUM=`echo -e "${FLIST}"|wc -l`
PAPER=$(( ${RANDOM} % ${NUM} ))
FNAME=`echo -e "${FLIST}"|sed -n "${PAPER}p"`
# true : primaere farbe
# false: sekundaere farbe
dcop kdesktop KBackgroundIface setColor black true
# Modes
# 1 zentriert
# 2 gekachelt
# 3 zentrierte kacheln
# 4 zentriert und skaliert (korrektes seitenverhaeltnis)
# 5 gekachelt (korrektes seitenverhaeltnis)
# 6 skaliert
# 7 zentriert mit autom. anpassung
# 8 skaliert und beschnitten
dcop kdesktop KBackgroundIface setWallpaper ${SOURCELOC}${FNAME} 4
(der tail/head-teil ist auch raus, nachdem mir wieder eingefallen ist, dass das ganze mit sed sehr viel einfacher geht :-))
(Seite 1 von 1, insgesamt 3 Einträge)


Kommentare