#!/bin/bash # 2012.02.10 # Usage: szerk [any number of strings] # opens and edits all files (of types below) that have any of the strings in their names, then copies them back to their original locations. k=s3`date +%N` mkdir $HOME/tmp/$k chmod 700 $HOME/tmp/$k/ viml="" ffl="" ool="" files="" for j in "$@" do for i in *$j* do # Bash parameter expansion veg=${i##*.} elej=${i%.*} #echo "$veg" #echo "$elej" #### doc, docx, rtf, ods, odt, xls, xlsx, ppt, pptx, pps, csv if [[ "$veg" == "doc" ]] || [[ "$veg" == "docx" ]] || [[ "$veg" == "rtf" ]] || [[ "$veg" == "ods" ]] || [[ "$veg" == "odt" ]] || [[ "$veg" == "xls" ]] || [[ "$veg" == "xlsx" ]] || [[ "$veg" == "ppt" ]] || [[ "$veg" == "pptx" ]] || [[ "$veg" == "pps" ]] || [[ "$veg" == "csv" ]] then cp "$i" $HOME/tmp/$k cd $HOME/tmp/$k ool="$i $ool" files="$i $files" cd - fi #### htm, html, wml if [[ "$veg" == "htm" ]] || [[ "$veg" == "html" ]] || [[ "$veg" == "wml" ]] then cp "$i" $HOME/tmp/$k cd $HOME/tmp/$k viml="$i $viml" ffl="$i $ffl" files="$i $files" cd - fi #### lev, txt, org, php, sql if [[ "$veg" == "rnd" ]] || [[ "$veg" == "lev" ]] || [[ "$veg" == "m" ]] || [[ "$veg" == "txt" ]] || [[ "$veg" == "org" ]] || [[ "$veg" == "php" ]] || [[ "$veg" == "sql" ]] then cp "$i" $HOME/tmp/$k cd $HOME/tmp/$k viml="$i $viml" files="$i $files" cd - fi #### tex, ltx if [[ "$veg" == "tex" ]] || [[ "$veg" == "ltx" ]] then cp "$i" $HOME/tmp/$k cp *.bib $HOME/tmp/$k if [ "$?" == 0 ] then files="*.bib $files" fi cp *.eps $HOME/tmp/$k if [ "$?" == 0 ] then files="*.eps $files" fi cp *.clo $HOME/tmp/$k cp *.cls $HOME/tmp/$k cp *.bst $HOME/tmp/$k cd $HOME/tmp/$k latex "$i" files="$i $files" cd - if [[ -f "$elej".bbl ]] then cp "$elej".bbl $HOME/tmp/$k files="$elej.bbl $files" cd $HOME/tmp/$k else cd $HOME/tmp/$k bibtex "$elej".aux fi makeindex "$elej" latex "$i" latex "$i" dvipdf "$elej".dvi cp "$elej".pdf "$elej"_nezd.pdf xpdf -q -z width "$elej"_nezd.pdf & viml="$i $viml" cd - fi #### zhk if [[ "$veg" == "zhk" ]] then cp "$elej.zhk" $HOME/tmp/$k cp "$elej.kov" $HOME/tmp/$k cp "$elej.knv" $HOME/tmp/$k cd $HOME/tmp/$k zh "$i" viml="$i $viml" ffl="$elej.html $ffl" files="$elej.zhk $files" files="$elej.kov $files" files="$elej.knv $files" cd - fi done done # mindenkit megnyitunk vim-ben, openofficeban es firefoxban akit kell cd $HOME/tmp/$k if [ -n "$ool" ] then if [[ "$HOSTNAME" == "mipici" ]] || [[ "$HOSTNAME" == "miasrock" ]] || [[ "$HOSTNAME" == "milaptop" ]] ; then libreoffice $ool & else openoffice $ool & fi fi if [ -n "$ffl" ] then firefox $ffl & fi if [ -n "$viml" ] then vim -p $viml fi # varjuk meg amig mindent bezartak cd - l=1 while [ -n "$l" ]; do sleep 1 l=`lsof +d $HOME/tmp/$k` # echo "$HOME/tmp/$k/$elej.$veg nyitva" done # Visszamasolas baj=0 for i in $files do cp $HOME/tmp/$k/$i . if [ "$?" -ne "0" ] then echo "!!! Baj van $HOME/tmp/$k/$i -vel !!!" baj=1 else echo "$HOME/tmp/$k/$i --> $PWD" fi done if [ "$baj" -ne "1" ] then rm -f -R $HOME/tmp/$k else echo "!!! Baj volt, $HOME/tmp/$k/ nincs torolve !!!" fi