erinnert ihr euch an mein problem? das konnte ich nun doch sehr elegant loesen:
ed@mediathek:~$ find Media/Movies/ -name "*.nfo" -print0 | \ xargs -0 egrep -i -c -e "countr.*dd|genre.*sci-fi|year.*196" | \ grep ":3" | sort | sed 's/:3//' Media/Movies/Der Schweigende Stern (1960)/\ Der Schweigende Stern (1960).nfo Media/Movies/First Spaceship on Venus (1962)/\ First Spaceship on Venus (1962).nfo
und bevor ich das rausfand wurde mir im irc noch gesagt, ich koennte keine scheisse aufpolieren und solle das lieber in perl oder besser noch in python programmieren! und am ende habe ich es doch in einem one-liner untergebracht :P
damit das auch nachhaltig ist und benutzbar bleibt, habe ich mir das ziel gesetzt, nun auch in der bash das interface zuprogrammieren. nach ganz viel case-voodoo wird am ende auch nur wieder
/usr/bin/find $DIR -type f -name "*.nfo" -print0 | \ xargs -0 egrep -c -i -e "$EXPRESSION" | \ grep ":$COUNTER" | sort | \ sed 's/:'$COUNTER'//' | sed -r 's/^.*\/(.*)\/.*/\1/'
ausgefuehrt. in der benutzung sieht das dann z.b. so aus:
ed@mediathek:~$ mediathek-cli-search --country=dd --genre=sci-fi \ --year=196 Der Schweigende Stern (1960) First Spaceship on Venus (1962) # link zum source von extern und von intern
die man-page und die bash-completion bau ich dann morgen oder so...
ed@mediathek:~$ mediathek-cli-search USAGE: mediathek-cli-search [OPTION=VALUE]... OPTIONS: --help --title --orignaltitle --alternativetitle --englishtitle --germantitle --year --country --director --genre --length --dub --sub --subfiles --source --videoformat --resolution --aspectratio EXAMPLES: mediathek-cli-search --help=OPTION mediathek-cli-search --country=dd --genre=sci-fi mediathek-cli-search --country=jp --genre=action \ --year=199 mediathek-cli-search --director=vertov mediathek-cli-search --dub=en --subfiles=de \ --genre=horror
seit stunden droehnt der inhalt des goldenen doeschen (neben dem auch der benjamin liegt) in mein hirn und psychodelischer trance (den marv mitgebracht hat) in mein ohr.
scheisse! ich hab nicht bedacht, dass ein parameter vielleicht ein space enthaelt... na da muss ich mir mal was ausdenken wie man damit umgeht :/
solved:
anstelle von for i in $* einfach for i in "$@" und das leerzeichen mit \ escapen. so einfach war das ^^