В зависимости от ваших потребностей, awk более гибок, чем разрез. Первый тизер:
# echo "system-source-yyyymmdd.dat" \
|awk -F- '{printf "System: %s\nSource: %s\nYear: %s\nMonth: %s\nDay: %s\n",
$1,$2,substr($3,1,4),substr($3,5,2),substr($3,7,2)}'
System: system
Source: source
Year: yyyy
Month: mm
Day: dd
Проблема в том, что описывать awk как «более гибкий» - это все равно что называть iPhone усовершенствованным мобильным телефоном; -)