Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

awk, sed oder doch lieber etwas anderes?

Alles rund um die verschiedenen Konsolen und shells sowie die Programmierung unter Linux

Moderator: Moderatoren

Antworten
franz2000
Newbie
Newbie
Beiträge: 18
Registriert: 30. Okt 2004, 23:50
Wohnort: Wien

awk, sed oder doch lieber etwas anderes?

Beitrag von franz2000 »

Hallo!

ich würde gerne aus awk heraus einen externen befehl aufrufen.

mein problem:

ich möchte das alter der smb-passwörter aus der smbpasswd herauslesen und gegebenenfalls eine erinnerungsmail schicken, dass es bitte geändert werden soll.

ich habe jetzt mit einem kleinem awk skript die spalte mit dem passwortalter aus der smbpasswd herausgelesen. weiters habe ich ein kleines script, dass mir das in hex-code angegebene eintragungsdatum des passwortes (unix-time) in ein für uns lesbares format (alter in tagen) umwandelt.

beide funktionieren, nur schaffe ich es leider nicht sie zu vereinen. awk liefert mir (genau) eine spalte. wenn ich von ausserhalb des awk-skripts das andere aufrufe, wird natürlich nur der letzte wert umgewandelt. und von innerhalb des awk-skriptes schaffe ich es nicht, einen "externe" befehl aufzurufen.

hier die beiden skripts:
das awk-skript zum herauslesen der spalte mit dem passwortalter: (an stelle des "M" möchte ich dann gerne eine spalte mit alter in tagen anfügen)

[code]
awk 'BEGIN {FS = ":"} {print $1,$6,"M"}' /etc/samba/smbpasswd |
sed -e 's?LCT-??' -e 's? ?;?' -e 's? ?;?' > smbpass
[/code]

das skript zum umwandeln:
[code]
dsecondsnow=$(date +%s) //akutelle zeit in sekunden, dezimal
hsecondspass=$1 //passwortalter in sekunden, hex
hsecondsnow=$(echo -e 'obase=16;'$dsecondsnow'' | bc)
dsecondspass=$(echo -e 'ibase=16;'$hsecondspass'' | bc)
let sdiff=dsecondsnow-dsecondspass
let temptdiff=sdiff/3600
let tdiff=temptdiff/24
echo $tdiff
[/code]

[color=green]wie bring ich die beiden zusammen?[/color]

das endprodukt stelle ich mir dann so vor:
name;eintragunsdatum-hex;alter-in-tagen
franz;418009AD;3

schon mal vielen dank
LG,
Franz
franz2000
Newbie
Newbie
Beiträge: 18
Registriert: 30. Okt 2004, 23:50
Wohnort: Wien

sorry,

Beitrag von franz2000 »

scheinbar hat das mit der formatierung bei mir noch nicht ganz hingehauen. vermute es lag an der option "html aus".
franz2000
Newbie
Newbie
Beiträge: 18
Registriert: 30. Okt 2004, 23:50
Wohnort: Wien

ok

Beitrag von franz2000 »

ich habs jetzt so gemacht, dass ich die tabelle, die von awk geliefert wird, in eine datei speichere. dann mit einer for-schleife das externe programm drüber laufen lasse und nachher diese datei wieder lösche.....
Antworten