Я рассмотрел несколько ответов, связанных с этим вопросом, однако, я все еще не могу получить то, что мне нужно для работы.Извлечение текста между двумя терминами
По существу, я пишу бумагу, которая использует библиографические коды в контейнере разметки. Это может происходить несколькими способами, например .:
\citet{bibcode}
\citep{bibcode}
\citet{bibcode1,bibcode2}
\citep[randomtext]{bibcode}
т.д.
Я пытаюсь составить список чисто этих bibcodes. Если в одном контейнере имеется несколько бибкодов, они разделяются запятой.
В настоящее время я использую:
sed -n 's:.*\cite.*{\(.*\)}.*:\1:p' sample.tex
Это работает для некоторых случаях, однако, не со всеми. Похоже, что он все еще отвлекается от других применений фигурных скобок и поднимает много ненужного текста.
Любая помощь по этому вопросу была бы высоко оценена.
Заранее спасибо.
Вы можете дать еще несколько образцов (где он не работает ...) Показывать исходные образцы и ожидаемый результат. Если есть другие фигурные скобки, ваша команда не будет делать то, что вам нужно. –