PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : cal + Aktuelles Datum



403
16-05-2006, 11:16
Hallo,

Ich moechte mit cal den aktuellen Tag (farbig) markieren.
Gibt es da eine gute Moeglichkeit das zu realisieren?



d=`date +%d`
x=`echo -e "\e[41;93m$d\e[0m"`


Ich habe versucht, die Sequenz in ein perl Einzeiler einzubauen,

cal|perl -n -e 'print $x if /$d/' , hat jemand eine
bessere Idee?

Joghurt
16-05-2006, 12:55
cal -m|sed "s/\($d\)/\x1b[41;93m\1\x1b[0m/"

baumgartner
16-05-2006, 13:04
verdammt ist das kniffelig!

werd ich mir mal am Abend anschauen ....

Hiermit verrutscht dir auf jeden Fall das Format, das müsstest du noch ausbügeln


cal|perl -e '$date = `date` ; @a=split " ",$date; print "tag: $a[2]\n"; while (<>){ @b=split; foreach (@b) {if ($_ eq $a[2]){print "color: $_ /color" ;} else {print "$_ "} } print "\n"; } '

Martin

403
16-05-2006, 14:09
Hallo,

Vielen Dank,

bei mir gings so unter Linux und FreeBSD.


export esc="`echo -e "\e[41;93m$d\e[0m"`"
cal |sed -e "s/\($d\)/$esc/"



Auf BSD wollte -m wohl nicht.


% cal -m|sed -e "s/\($d\)/$esc/"
cal: option requires an argument -- m
usage: cal [-jy] [[month] year]
cal [-j] [-m month] [year]
ncal [-Jjpwy] [-s country_code] [[month] year]
ncal [-Jeo] [year]


edit: Danke an alle anderen.

Joghurt
16-05-2006, 14:53
GNU cals option -m sorgt dafür, dass die Woche Montags beginnt und nicht Sonntags

baumgartner
17-05-2006, 10:07
scheint so als müsst ich mich auch mal mit dem Stream editor auseinander setzten. Das hier sieht auf jeden Fall sehr nett aus!

403
02-06-2006, 08:59
hier nochmal der Versuch auch bei einstelligen Vorkommen (1 vs 01) keine Probleme zu haben:



#!/usr/bin/env bash
# June 2006
#Su Mo Tu We Th Fr Sa
# 1 2 3
# 4 5 6 7 8 9 10
#11 12 13 14 15 16 17
#18 19 20 21 22 23 24
#25 26 27 28 29 30

d=`date +%e`; # print x instead of 0x
M="`cal|egrep [0-9][0-9][0-9][0-9]`"
esc="`echo -e "\e[41;93m$d\e[0m"`"
echo $M
if [ `echo $d` -le 9 ] ; then
# echo one char;
cal|head -n 4|grep -v "$M"|sed "s/\($d\)/$esc/" && cal| tail -n 3
else
#echo two char;
cal|grep -v "$M"|sed "s/\($d\)/$esc/"
fi
exit


@joghurt: Viel Spass beim Basteln eines Einzeilers. Da drin wuerde doch bestimmt
0? vorkommen, oder? :p ;)

Joghurt
02-06-2006, 12:56
@joghurt: Viel Spass beim Basteln eines Einzeilers. Da drin wuerde doch bestimmt
0? vorkommen, oder? :p ;)Nein :p

cal |sed -r "s/( |^)($d)( |$)/\1\x1b[41;93m\2\x1b[0m\3/"

403
08-06-2006, 12:07
grrr :) :D

Mehlwurm
08-06-2006, 13:18
aber das siebtletzte zeichen war eine "0" ;-)