Regularni vyrazy

Pavel Kankovsky peak na argo.troja.mff.cuni.cz
Úterý Říjen 19 16:28:56 CEST 1999


On Tue, 19 Oct 1999, Michal TALMAN wrote:

> mam soubor takovehoto slozeni:
> F000001/JOB.done: queued by nobody. 1 page(s) to 85,4974.
> F000004/JOB.done: queued by root. 1 page(s) to 9.
> F000005/JOB.done: queued by root. 1 page(s) to 9.
> 
> je to vypis odeslanych faxu. Potrebuji pomoci regularnich vyrzu z toho odsek
> at nektere udaje (stav faxu, uzivatele, pocet stram telefoni cislo atd). Vim

Da se to udelat mnoha ruznymi zpusoby, ale jeden specialne kreativni
je tento:

sed
  's/^F\([0-9]*\)\/JOB\.\([a-z]*\): queued by \([a-z]*\)\.'\
  '\([0-9]*\) page.*to \(.*\)\.$)/\1:\2:\3:\4:\5/' | \
while IFS=':' read job status user pages phone
do
	cokoli "$job" "$status" "$user" "$pages" "$phone"
done

P.S. grepem by to asi neslo, protoze nevim o tom, jak by grep mohl
rozdelit radek.

--Pavel Kankovsky aka Peak  [ Boycott Microsoft--http://www.vcnet.com/bms ]
"Resistance is futile. Open your source code and prepare for assimilation."




Další informace o konferenci Linux