On Sunday, August 29, 2010 13:16:02 Detlef Reichelt wrote:
#!/bin/bash
cat db.txt | while read i; do
name=`echo $i | awk '{ print $1 }'` pw=`echo $i | awk '{ print $2 }'` mail=`echo $i | awk '{ print $3 }'` echo $name " -> " $pw " -> " $mail
sed -e "s|%NAME%|$name|g" template.txt > $name.txt sed -i -e "s|%PW%|$pw|g" $name.txt sed -i -e "s|%MAIL%|$mail|g" $name.txt
done
Also, wenn Du sowas professionell machst, könnte man Dich als einen der
Schuldigen an der globalen Erwärmung bezeichnen. Schuldigung, das musste raus.
Für mich wäre die simpelste Version irgendwas mit Perl, z.B:
perl -e '
my $tmpl;
{
local $/;
local @ARGV=("tmpl");
$tmpl=<>;
}
my %x;
while(<>) {
@x{qw/NAME PW MAIL/}=split;
(my $x=$tmpl)=~s/%(\w+?)%/$x{$1}/g;
my $f;
open $f, ">", "$x{NAME}.txt" and print $f $x
}
' user
Der besseren Lesbarkeit wegen habe ich es eingerückt. Es könnte aber auch
alles in einer Zeile geschrieben werden.
Mit awk sind ähnlich einfache Versionen möglich.
Aber bei obigem Shell-Skript fehlen mir die Worte, ehrlich.
Das cat am Anfang kann weggelassen werden:
while read i; do ... done