В зависимости от вашего дистрибутива и ядра вы можете использовать AppArmor или SELinux для хранения своих приложений. В целом я бы сказал, что AppArmor удобнее в настройке и обслуживании. Вики Ubuntu содержит несколько статей, объясняющих основные понятия.
Возможно, вы захотите подумать о том, что делать с выходными данными, например, использовать имя входных данных с расширением для выходных данных. Изменение отступа не должно быть трудным.
Этот сценарий перечисляет любое количество файлов, названных в командной строке, и любое количество таких блоков в одном файле.
Это результат вашего примера:
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 "${@:--}"