Bash — извлечь блок кода с отступом в новый файл

В зависимости от вашего дистрибутива и ядра вы можете использовать AppArmor или SELinux для хранения своих приложений. В целом я бы сказал, что AppArmor удобнее в настройке и обслуживании. Вики Ubuntu содержит несколько статей, объясняющих основные понятия.

2
02.12.2019, 03:13
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 "${@:--}"

2
27.01.2020, 22:08

Теги

Похожие вопросы