On Sat, 17 Nov 2001, Juergen Schwarting wrote:
* Am 17.11.2001 um 01:12 Uhr schrieb Christian Stuermer:
Ich habe ein Ascii-file in dem viele Zeilen wie stringA = stringB stehen. Nun möchte ich das =-Zeichen durch eine fortlaufende Nummer ersetzen und davor noch einen gleichbleibenden string setzen. also: string stringA 1 stringB string stringC 2 stringD string stringE 3 stringF ...
hier eine weitere Lösung:
#!/bin/bash
i=1 while read Zeile; do echo "string ${Zeile/=/$((i++))}" ^ muss das nicht // sein? done < foo.dat
Ausserdem: $ while read Z; do echo "${Z//=/$((i++))}"; done bash: i++: syntax error: operand expected (error token is "+") Kurz: $ for x in A B C D; do echo "string${x} = string${x}"; done \ | ( i=0; while read Z; do echo "${Z//=/$[i=i+1]}"; done ) (ach ja, ich ziehe $[] dem $(( )) vor... ist leichter lesbar ;) oder: $ for x in A B C D; do echo "string${x} = string${x}"; done \ | awk '{ sub("=",++i); print $0;}' (die erste Schleife erzeugt dabei jeweils einfach nur: stringA = stringA stringB = stringB stringC = stringC stringD = stringD ) -dnh -- 121: NOP Seiteneffektfreies Takte verbraten. (Ingo Augsten)