InsertTimestamp()
{
print -n $1 |
case ${2:-N} in
N)
cat
;;
S)
sed 's/.log$/_??????????????.log/'
;;
D)
sed 's/.log$/_????????.log/'
;;
R)
if ParamExists wide_backup_timestamp
then
sed 's/\(\.BAK\|\.TRN\)$/_????_??_??_??????_???????\L\1/;s/\(_tlog_\|_db_\)/_backup_/'
else
print -n $1|sed 's/\(\.BAK\|\.TRN\)$/_????????????\1/'
fi
;;
X)
sed 's/.log$/-???????????????.log/'
;;
*)
cat
;;
esac
}
SetParam $File.filename $(Cygpath $(InsertTimestamp $(ReadReg $(GetParam $REGISTRY_PATH $SYSTEM)) $(GetParam $TIMESTAMP.$File $SYSTEM)))
Itt egy példa arra, amit el sem tudsz képzelni. :-D Egy pipeline két helyen is tartalmazza a cat-ot. Az utolsó sor példa a felhasználásra.
A függvény a linux alatt filesystemben leképzett Windows registry-ben tárolt fájlnév patternbe illeszt be egy timestamp értéket az aktuális adattípusnak megfelelő módon. Ráadásul az elején szereplő print -n alias cat -n. Persze még a sed is kiutálható a parancsból.