Cercando di raggiungere i seguenti lottato mia mente:Converti output `cal` Unix in codice tabella latex: soluzione one-liner?
Convert Unix cal
uscita in codice tavolo lattice, utilizzando un breve e dolce one-liner (o pochi-liner).
es cal -h 02 2012 | $magicline
dovrebbe produrre
Mo &Tu &We &Th &Fr \\
& & 1 & 2 & 3 \\
6 & 7 & 8 & 9 &10 \\
13 &14 &15 &16 &17 \\
20 &21 &22 &23 &24 \\
27 &28 & & & \\
L'unica soluzione ragionevole ho potuto venire in mente finora era
cal -h | sed -r -e '1d' -e \
's/^(..)?(...)?(...)?(...)?(...)?(...)?(...)?$/\2\t\&\3\t\&\4\t\&\5\t\&\6\t\\\\/'
... e ho davvero provato duramente. La cosa bella è che è semplice e facile da capire, la cosa brutta è che è "non flessibile" (non poteva sopportare una settimana di 8 giorni) e un po 'prolisso. Sto cercando soluzioni alternative per imparare da ;-)
EDIT: Trovato un altro che sembra accettabile
cal -h | tail -n +2 |
perl -ne 'chomp;
$,="\t&";
$\="\t\\\\\n";
$line=$_;
print map {substr($line,$_*3,3)} (1..5)'
EDIT: Nice one:
cal -h | perl \
-F'(.{1,3})' -ane \
'BEGIN{$,="\t&";$\="\t\\\\\n"}
next if $.==1;
print @F[3,5,7,9,11]'
Codice golf ha il proprio SE forum. – tripleee
Quale versione di 'cal' su quale piattaforma accetta l'opzione' -h'? –
@ Jonathan: la [versione di Ubuntu di cal] (http://manpages.ubuntu.com/manpages/gutsy/man1/cal.1.html) sembra essere l'unica. – Borodin