我有一堆以下格式的LilyPond文件:
\score {
\new StaffGroup = "" \with {
instrumentName = \markup { \bold \huge \larger "1." }
}
<<
\new Staff = "celloI" \with { midiInstrument = #"cello" }
\relative c {
\clef bass
\key c \major
\time 3/4
\tuplet 3/2 4 {
c8(\downbow\f b c e g e)
} c'4 | %01
\tuplet 3/2 4 {c,8( b c e f a) } c4 | %02
\tuplet 3/2 4 { g,8( d' f g f d) } b'4 | %03
}
>>
\layout {}
\midi {}
}
如何将\relative c {...}
块提取到一个新文件中,所以它看起来像这样:
\relative c {
\clef bass
\key c \major
\time 3/4
\tuplet 3/2 4 {
c8(\downbow\f b c e g e)
} c'4 | %01
\tuplet 3/2 4 {c,8( b c e f a) } c4 | %02
\tuplet 3/2 4 { g,8( d' f g f d) } b'4 | %03
}
在这种情况下,不一定需要修复缩进。那会是一个任务吗awk
?csplit
它会是什么样子?
您可能想考虑如何处理输出,例如使用输入名称和输出的扩展名。修改缩进应该不难。
该脚本列出了命令行中命名的任意数量的文件,以及一个文件中任意数量的此类块。
这是您的示例的输出:
这是脚本。