PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Shell--for line in $



akartal
17-03-2006, 16:00
Hallo,
ich habe in einer Text-Datei 2 Spalten (File und Grösse). Für jede Zeile möchte ich ein Vergleich machen.
z.B. für Zeile 1
file=File von NUR Zeile1
Grösse=Grösse von NUR Zeile1
Ich bekomme es aber nicht die Variablen einzeln zu bearbeiten. Kann jemand mir bitte helfen?
__________________________________________________ _______________

!/bin/bash
set -x


for line in $(cat db_groesse.txt);do
file=$(echo $line|cut -f1)
groesse=$(echo $line|cut -f2)



echo $groesse
echo $file




if [ $groesse -gt 1000000000 ]
then
echo "Die Datenbankfile" $file "hat die Grösse" $groesse/1024/1024/1024 "GB !">
fi

done
____________________________
Die text-Datei: db_groesse.txt


/oracle/igb/tbs/system01.dbf------Leerzeichen-----262144000
/oracle/igb/tbs/undotbs01.dbf-----Leerzeichen-----209715200
/oracle/igb/tbs/igb_data01.dbf----Leerzeichen----2097152000
/oracle/igb/tbs/igb_index01.dbf---Leerzeichen----1524288000

musketaquid
17-03-2006, 16:59
$line enthält bei dir immer nur ein wort und nicht die ganze zeile.
So müsste es klappen:

word=1

for line in $(cat db_groesse.txt) ; do
if [ $word = 1 ] ; then
file=$line
word=2
else
echo $line
echo $file
if [ $line -gt 1000000000 ] ; then
echo "Die Datenbankfile" $file "hat die Grösse" $line/1024/1024/1024 "GB !">
fi
word=1
fi
done


Ach so, demnächst solltest du code bitte zwischen den CODE TAGS posten, die kannst du mit # einfügen.

Gruß

akartal
18-03-2006, 09:46
Vielen Dank!
Hat super geklappt.
Gruss