[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [semi-OT] crontab -> csv



On Fri, Mar 01, 2002 at 08:30:34PM +0100, Heiko Schlittermann wrote:
> On Thu, Feb 28, 2002 at 10:45:02PM +0100, Stefan Klein wrote:
Hi Stefan,
> > ich bin auf der Suche nach einem (Perl-)script welches mir aus einem 
> > Crontabeintrag z.B.:
> > 
> > 2,4 0,15 * * *       root    /bin/hier
> > 
> > 
> > 2;0;*;*;*;root;/bin/hier
> > 2;15;*;*;*;root;/bin/hier
> > 4;0;*;*;*;root;/bin/hier
> > 4;15;*;*;*;root;/bin/hier
> 
>     perl -ne 'print join ";", split " ", $_, 7'
ich glaube Heiko hat nicht genau hingeschaut und trifft nicht,
was Du willst. Nach meinem Verständnis willst Du eine Art
Multiplikation an den Kommas. Ich habe einen Script angehängt,
der bis auf Vertauschung von Zeilen, genau das ausgibt, was
Dein Beispiel vorgibt. Ist aber höllische Gehirnakrobatik und
ich weiß nicht, wie sicher er mit Deinen Crontabs zurechtkommt.
Ich hätte aber Spaß dran, den Script mit Dir/Euch zu zerlegen und
zu verbessern,

		Wolfgang

#!/bin/bash

_fill_ncube() {
	while read __ret; do
		[ -n "$__ret" ] || continue
		ifs="$IFS"; IFS='!'; set -- $__ret; IFS="$ifs"
		__ret="$1"
		shift
		while [ $# -gt 0 ]; do
			_tmp=
			for __v in $1; do
				for __v1 in $__ret; do
					_tmp="$_tmp $__v1$__v"
				done
			done
			shift
			__ret="$_tmp"
		done
		for __v in $__ret; do
			echo "$__v"
		done
	done
}

echo "2,4 0,15 * * *       root    /bin/hier" |
sed -e 's/[ 	][ 	]*/!;/g' -e 's/,/ /' -e 's/,/ ;/g' | _fill_ncube



Reply to: