home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 2001 August - Disc 2
/
chip_20018102_hu.iso
/
cd_keres
/
chip_keres.sh
< prev
next >
Wrap
Linux/UNIX/POSIX Shell Script
|
2001-02-04
|
9KB
|
220 lines
#!/bin/sh
#
# Ez a script GNU/GPL licensz√, mindenki hasznßlja egΘszsΘggel.
# A script esetleges hibßs m√k÷dΘse ßltal okozott hibßkΘrt felel⌡ssΘget
# nem vßllalok. Mindenki _csak_ sajßt felel⌡ssΘgΘre hasznßlhatja.
# A script korßntsem t÷kΘletes, ha valamilyen javφtand≤ hibßt,
# vagy hißnyossßgot talßlsz benne, kΘrlek Θrtesφts a szimszon@freemail.hu cφmen.
#
# A script els⌡ paramΘterekΘnt a Chip Magazin azon katalogusßt kell megadni
# amely egy sima sz÷vegfile, nincs t÷m÷rφtve, Θs a mez⌡elvßlaszt≤ karakterek
# > (cs⌡r÷k). Illetve a scriptet ßtφrva, a DEFFILE vßltoz≤ban megadhat≤ a file
# helye.
#
# v.0.6 - 2001.01.04.
# KΘszφtette: Gyuris Szabolcs J.
#
PID=$$
TMP1="/tmp/chip.$PID.tmp1" # Az els⌡ ideiglenes ßllomßny amit lΘtrehoz
TMP2="/tmp/chip.$PID.tmp2" # A mßsodik
DEFFILE="/cdrom/cd_keres/chipcds4.txt" # A file alapΘrtelmezett helye
HELPFILE="chip_help.txt" # A programhoz val≤ segitsΘget ny·jt≤ sz÷vegfile
FILE=$1 # Az els⌡ paramΘter ßtadßsa
MENU=0
KERES="" # Keres⌡kifejezΘs
NEM="" # ╔s amit nem keres
CAPS="KI" # figyelje-e a nagy/kisbet√ket
HIBA=0 # cancel = 1
FMENT="" # a talßlatok mentΘsΘhez a file neve
CHECK="1 2 3" # oszlopokban valo kereses
RENDEZ="Rendezetlen" # RendezΘs tφpusa
RENDEZ_TMP="File_neve < off File_leφrßsa < off CD_szßma < off Rendezetlen < on"
# RendezΘsi lista
BACKTITLE="Chip Magazin CD tartalomjegyzΘk b÷ngΘsz⌡ v.0.6 | adatbßzis: "
# Program fejlΘc
# Windows sz√r⌡
# \232 - ▄
# \032 - passz
# \217 - ┴
# \226 - √
# \227 - ┌
# \234 - ·
# \204 - passz
#tr '\232' '▄' \| tr '\032' ' ' \| tr '\217' '┴' \| tr '\226' '√' \| tr '\227' '┌' \| tr '\234' '·' \| tr '\204' '?'
if [ $FILE = "--help" ] 2> /dev/null; then
echo "Keres⌡program a Chip Szßmφt≤gΘpmagazin CD mellΘklet katal≤gusßt"
echo "tartalmaz≤ adatbßzishoz, verzi≤: 0.6"
echo "Az adatbßzisnak sz÷veges ßllomßnynak kell lennie, amiben a kⁿl÷nb÷z⌡"
echo "oszlopokat \">\" (cs⌡r÷k) vßlasztjßk el egymßst≤l. Valamint az ßllomßny"
echo "ne legyen t÷m÷rφtve. Ilyen pΘldßul a \"chipcds4.txt\" ßllomßny"
echo "Hasznßlata:"
echo " "
echo "chip_keres.sh [ut/adatbßzis_neve | --help]"
echo " "
echo "Abban az esetben, ha nem adunk meg adatbßzisnevet, akkor az alapΘrtel-"
echo "mezett \"$DEFFILE\"-t pr≤bßlja hasznßlni."
echo "Ha φgysem talßlta meg, akkor a program rß fog kΘrdezni indφtßskor."
echo "Az alapΘrtelmezett helyet egyszer√en meg lehet vßltoztatni egy "
echo "sz÷vegszerkeszt⌡vel, csak meg kell nyitni a chip_keres.sh-t vele, Θs ßtφrni"
echo "a DEFFILE nev√ vßltoz≤ ΘrtΘkΘt a megfelel⌡re."
echo "A programot mindenki csak sajßt felel⌡ssΘgΘre hasznßlja!"
exit 0
fi
if ! [ -e $HELPFILE ]; then
echo "Nem talßlom a $HELPFILE-t :("
echo "ENTER a tovßbblΘpΘshez, CTRL+C a megszakφtßshoz"
read
fi # ! [ -e $HELPFILE ]
if [ -z $FILE ] || ! [ -e $FILE ]; then
if [ -e $DEFFILE ]; then
FILE=$DEFFILE
else
FILE=$DEFFILE
until [ -e $FILE ] || ! [ $HIBA = 0 ]
do
dialog --inputbox "Hol talßlhat≤ az adatbßzis?" 8 70 "$FILE" 2> $TMP1
HIBA=$?
FILE=$(cat $TMP1)
done # [ -e $FILE ] || ! [ $HIBA = 0 ]
if ! [ $HIBA = 0 ]; then
echo "Nincs feldolgozand≤ file... :("
exit 1
fi # [ $HIBA ]
fi #[ -e $DEFFILE ]
fi # [ -z $FILE ]
EV=`find $FILE -printf '%TY'` # Hanyadik Θv
HONAP=`find $FILE -printf '%Tm'` # Honap
NAP=`find $FILE -printf '%Td'` # Nap
ORA=`find $FILE -printf '%Tk'` # Ora
PERC=`find $FILE -printf '%TM'` # Perc
BACKTITLE="$BACKTITLE$EV.$HONAP.$NAP. $ORA:$PERC"
if file $FILE | grep "gzip compressed" >/dev/null; then
CAT="zcat"
else
CAT="cat"
fi
until [ $MENU = 4 ];
do
dialog --backtitle "$BACKTITLE"\
--menu KeresΘs 17 60 9\
1 "Amit keres -> $(echo "$KERES" | head -c 30 )"\
2 "Amit nem keres -> $(echo "$NEM" | head -c 30 )"\
3 "KeresΘs ->"\
4 "KilΘpΘs"\
5 "Kis/nagybet√k -> $CAPS"\
6 "KeresΘsek a(z) $CHECK oszlopokban"\
7 "RendezΘs -> $RENDEZ"\
8 "Fileba mentΘs -> $(echo "$FMENT" | head -c 30 )"\
9 "SegφtsΘg" 2> $TMP1
MENU=$(cat $TMP1)
if [ -z $MENU ]; then
MENU=4
fi # [ -z $MENU ]
clear
case $MENU in
1) dialog --backtitle "$BACKTITLE"\
--inputbox "Mit keressen?" 8 70 "$KERES" 2> $TMP1
if ! [ $? -eq 1 ]; then
KERES=$(cat $TMP1)
fi;;
2) dialog --backtitle "$BACKTITLE"\
--inputbox "Mit ne keressen?" 8 70 "$NEM" 2> $TMP1
if ! [ $? -eq 1 ]; then
NEM=$(cat $TMP1)
fi;; # ! [ $? -eq 1 ]
3) echo -en "A keresΘs folyamatban van [. ]\r"
if [ $CAPS = "BE" ]; then
$CAT $FILE | tr '\232' '▄' | tr '\032' ' ' | tr '\217' '┴' | tr '\226' '√' |\
tr '\227' '┌' | tr '\234' '·' | tr '\204' '?' |\
awk -F ">" -v k="$CHECK" -v mit="$KERES" -v nem="$NEM"\
'{ gsub(/\r/,"") }
{ if (( k ~ "1" && $1 ~ mit )\
|| ( k ~ "2" && $2 ~ mit )\
|| ( k ~ "3" && $3 ~ mit )\
|| ( k ~ "1 2 3" && $0 ~ mit )) {
if ( nem == "" || $0 !~ nem ) \
{ print $1">"$2">"$3 } } }' > $TMP2
else
$CAT $FILE | tr '\232' '▄' | tr '\032' ' ' | tr '\217' '┴' | tr '\226' '√' |\
tr '\227' '┌' | tr '\234' '·' | tr '\204' '?' |\
awk -F \> -v k="$CHECK" -v mit="$KERES" -v nem="$NEM"\
'BEGIN {
mit = tolower(mit)
nem = tolower(nem)
}
{ gsub(/\r/,"") }
{ if (( k ~ "1" && tolower($1) ~ mit )\
|| ( k ~ "2" && tolower($2) ~ mit )\
|| ( k ~ "3" && tolower($3) ~ mit )\
|| ( k ~ "1 2 3" && tolower($0) ~ mit )) {
if ( nem == "" || tolower($0) !~ nem )\
{ print $1">"$2">"$3 } } }' > $TMP2
fi # [ $CAPS = "BE" ]
echo -en "RendezΘs folyamatban van [..]\r"
case $RENDEZ in
"File_neve") cat $TMP2 | sort -t\> +0 > $TMP1;;
"File_leφrßsa") cat $TMP2 | sort -t\> +1 > $TMP1;;
"CD_szßma") cat $TMP2 | sort -t\> +2 > $TMP1;;
"Rendezetlen") cp $TMP2 $TMP1;;
esac
cat "$TMP1" | awk '{gsub(/\|/,"\t"); print $0}' > $TMP2
if ! [ -z "$FMENT" ]; then
cp $TMP2 $FMENT
fi # ! [ -z "$FMENT" ];
X=500
Y=500
echo "RendezΘs folyamatban van [OK]"
dialog --textbox $TMP2 $Y $X 2> $TMP1
Y_M=$(cat $TMP1 | awk '{gsub(/C.+\(\-/,""); gsub(/,.+/,""); print $0 }') #'
X_M=$(cat $TMP1 | awk '{gsub(/.+\(\-[0-9]+,\-/,""); gsub(/\).+/,""); print $0 }') #'
let "X=$X-($X_M*2)"
let "Y=$Y-($Y_M*2)-3"
dialog --clear --backtitle "File nΘv | Meghatßrozßs | Chip CD szßma Θs k÷nyvtßr"\
--textbox "$TMP2" $Y $X
dialog --clear;;
5) if [ $CAPS = "KI" ]; then
CAPS="BE"
else
CAPS="KI"
fi;; # [ $CAPS = "KI"]
6) dialog --backtitle "Chip Magazin CD tartalomjegyzΘk b÷ngΘsz⌡ v.0.5 | adatbßzis: $EV.$HONAP.$NAP. $ORA:$PERC"\
--checklist "Milyen oszlopokban keressen?" 10 70 3 \
1 "File neve" on 2 "MegjegyzΘs" on 3 "CD sorszßm" on 2> $TMP1
if ! [ $? -eq 1 ]; then
CHECK=$(cat $TMP1 | tr -d \")
fi;; # ! [ $? -eq 1 ];
7) dialog --backtitle "$BACKTITLE"\
--radiolist "Milyen oszlopra rendezzen?" 12 70 4 $RENDEZ_TMP 2> $TMP1
if ! [ $? -eq 1 ]; then
RENDEZ=$(cat $TMP1 | tr -d \")
RENDEZ_TMP=$(echo "$RENDEZ_TMP" | awk '{ gsub(/on|off/,"\n"); print $0 }' |\
awk -v x="$RENDEZ" '{gsub(/[ ]/,"_",x)}\
{if ( $0 ~ x && length($0) != 0 ) { print $0"on"}\
if ( $0 !~ x && length($0) != 0 ) { print $0"off"}}') #'
fi;; # ! [ $? -eq 1 ];
8) dialog --backtitle "$BACKTITLE"\
--inputbox " Mi legyen a file neve?\n\
Ha ⁿres stringet adsz meg, akkor nem lesz mentΘs." 10 70 "$NEM" 2> $TMP1
if ! [ $? -eq 1 ]; then
FMENT=$(cat $TMP1)
fi;; # ! [ $? -eq 1 ]
9) X=500
Y=500
dialog --textbox $HELPFILE $Y $X 2> $TMP1
Y_M=$(cat $TMP1 | awk '{gsub(/C.+\(\-/,""); gsub(/,.+/,""); print $0 }') #'
X_M=$(cat $TMP1 | awk '{gsub(/.+\(\-[0-9]+,\-/,""); gsub(/\).+/,""); print $0 }') #'
let "X=$X-($X_M*2)"
let "Y=$Y-($Y_M*2)-3"
dialog --clear --backtitle "$BACKTITLE"\
--textbox $HELPFILE $Y $X;;
esac # $MENU in
done # [ $MENU = 4 ];
rm $TMP1 2> /dev/null
rm $TMP2 2> /dev/null