Быстрое транспонирование на тон вниз

Ленивый программист, столкнувшись с задачей поменять тональность в записи, подобной

  D                 A       D     G     A     D
|-------------------------|-------------------------|
|-------------------------|-------------------------|
|-5-----------5-----------|-5-----------------5-----|
|-------5-----------5-----|-------3-----5-----------|
 
Verse: 'They've got cars big as bars...'
 
  D     A     Bm    G       D                 A
|-------------------------|-------------------------|
|-------------------------|-------------------------|
|-5-----------2-----------|-5-----------5-----------|
|-------5-----------3-----|-------5-----------5-----|

не идёт вспоминать сольфеджию, а пишет однострочную команду:

perl -ple 's/-(\d+)/sprintf("-%d", $1-2)/ge;s/\b([A-H])(m?)\b/sprintf("%s%s", chr(ord($1)-1), $2)/ge;s/ @( |$)/ G$1/g' d-tab.txt > c-tab.txt