나에겐 무리가 있어로터스 연못다음 형식의 파일:
\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
OR 작업 이 될까요 csplit
? 어떤 모습일까요?
답변1
출력 확장자와 함께 입력 이름을 사용하는 등 출력을 처리하는 방법을 고려할 수 있습니다. 들여쓰기를 변경하는 것은 어렵지 않습니다.
스크립트는 명령줄에 명명된 파일 수와 파일 내의 해당 블록 수를 나열합니다.
예제의 출력은 다음과 같습니다.
Paul--) ./LilyPond Lily.txt
\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
}
여기에 스크립트가 있습니다.
Paul--) cat LilyPond
#! /bin/bash
function Relative {
local AWK='''
BEGIN { reRel = "[\\\\]relative[ ]+c"; }
function cntBrace (tx, Local, n) {
n += gsub ("{", "{", tx);
n -= gsub ("}", "}", tx);
return (n);
}
$0 ~ reRel || nBrace > 0 { print; nBrace += cntBrace( $0); }
'''
awk -f <( echo "${AWK}" ) "${@}"
}
#### Script Body Starts Here.
Relative "${@:--}"