Scripting mit awk (oder wie man Zeilen aus einem String del)

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Cclear
Beiträge: 15
Registriert: 25.11.2008 08:54:18

Scripting mit awk (oder wie man Zeilen aus einem String del)

Beitrag von Cclear » 17.02.2009 09:25:37

Hallo , ich habe ein Problem und zwar will ich mir einen automatisierten bash script bauen zum resizen von lv's in einer lvm


#!/bin/bash
# find the right space from lv files
rechner=`du -c |grep total`

rechner=`$rechner | awk "{'print $1'}"`
// hier gibt er die awk variable als fehler aus!
rechner=`expr '$rechner * 1.05'| bc`
rechner=`$rechner`K

##resize ext3 fs

tune2fs -O ^has jurnal /dev/vg/testlv
e2fsck -f /dev/vg/testlv
resize2fs -p /dev/vg/testlv `$rechner`
e2fsck -f /dev/vg/testlv

##resize lvm lv
lvm > lvreduce -L`$rechner` /dev/vg/testlv
lvm > exit
e2fsck -f /dev/vg/testlv
mount -t /dev/vg/testlv

dabei denkt bash natürlich das die awk variable eine bash variable ist.
Kann ich das irgendwie umgehen, kann mir vielleicht jmd mit dem scripting helfen?

mfg Cclear

Vielen dank im vorraus



//EDIT

Scheint als würde es mir auch völlig reichen einfach nur einen string aus einem string zu entfernen (irgendwie "total und die leerzeichen aus der Variablen zu löschen")

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Re: Scripting mit awk (oder wie man Zeilen aus einem String del)

Beitrag von Duff » 17.02.2009 09:53:15

Die Zeile sollte so funktionieren bzw. die Berechnung:

Code: Alles auswählen

rechner=$(du -c /home/user/|grep total|awk '{print $1}')
rechner=$(echo "$rechner * 1.05"|bc)
echo $rechner
Oh, yeah!

Cclear
Beiträge: 15
Registriert: 25.11.2008 08:54:18

Re: Scripting mit awk (oder wie man Zeilen aus einem String del)

Beitrag von Cclear » 17.02.2009 10:18:52

es klappt =D , aber leider brauche ich für den script eine integer zahl und keinen double , kann man das irgendwie umwandeln ? (e2fsck braucht ganze Kilobyte,keine dezimalen...)

okay , bash variablen haben keine typen,also ,wie kann ich einfach die nachkommastellen (sind bei 5% von mind 5gb über eh nicht wichtig) einfach austauschen? mit sed vllt?

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Re: Scripting mit awk (oder wie man Zeilen aus einem String del)

Beitrag von Duff » 17.02.2009 11:15:39

Verstehe das Problem noch nicht ganz.

Du kannst dir mit du -ck doch die Größe in Kilobyte ausgeben lassen.
Oh, yeah!

Cclear
Beiträge: 15
Registriert: 25.11.2008 08:54:18

Re: Scripting mit awk (oder wie man Zeilen aus einem String del)

Beitrag von Cclear » 17.02.2009 11:19:30

aber es sind leider auch *.* KB möglich
zur Zeit versuche ich es mit printf zu runden

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Re: Scripting mit awk (oder wie man Zeilen aus einem String del)

Beitrag von Duff » 17.02.2009 11:41:24

Sorry, aber ich verstehe nicht wirklich was du genau meinst.

Kannst du eventuell mal ein Beispiel posten (ist-Zustand und soll-Zustand)?
Oh, yeah!

Benutzeravatar
Meillo
Moderator
Beiträge: 9254
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Scripting mit awk (oder wie man Zeilen aus einem String del)

Beitrag von Meillo » 17.02.2009 12:34:02

Cclear hat geschrieben:aber es sind leider auch *.* KB möglich
zur Zeit versuche ich es mit printf zu runden
- printf("%d", 3.6) zum Kommateil abschneiden
- printf("%.0f", 3.6) oder int(3.6) zum Runden.
Use ed once in a while!

Cclear
Beiträge: 15
Registriert: 25.11.2008 08:54:18

Re: Scripting mit awk (oder wie man Zeilen aus einem String del)

Beitrag von Cclear » 17.02.2009 15:32:45

super,genau das was ich gebraucht hab ,danke!

Antworten