Я пытаюсь написать сценарий оболочки, который компилирует источник латекса. Я хочу взять имя библиографического файла, который содержится в такой команде, как:
\ библиографию {имя файла}
Мне нужно сохранить «имя файла» в переменной оболочки. Мое решение этого (в tcsh) ужасно смущает:
набор биолиографии = grep -v -E "[[:blank:]]*%[[:blank:]]*" poltheory.tex | grep -E "\\bibliography{[A-Za-z0-9_\.]*}" | tail -1 | sed 's/\\bibliography//' | tr -d { | tr -d } | awk '{print $1}'
Это разбивается как:
- не показывать закомментированные строки в источнике латекса
- возьмите те строки, которые содержат действительный библиографический тег
- использовать только последний (в случае, если по каким-то причинам определено несколько)
- избавиться от фигурных скобок
- установить, что осталось для переменной оболочки.
Конечно, есть элегантный способ сделать это, что я пропускаю. Ты можешь меня удивить? У меня уже есть рабочая команда, так что это просто во имя красоты и волшебства раковины.