Вы можете начать с
echo 'date=April 13, 1985' | sed -e 's/January/01/' ... \
-e 's/April/04/' ... -e 's/December/12/' | \
sed 's/\([0-9]*\)[^0-9]\([0-9]*\)[^0-9] \([0-9]*\)$/\1-\2-\3/'
Для обработки "date = (имя_месяца ДД, ГГГГ)" вы также можете добавить sed 's/date=(\([^(]*\))/date=\1/'
в канал и т.добавление к нему.Sed будет недостаточно для работы с тегом <ref></ref>
, если он занимает более одной строки.Таким образом, вы должны использовать что-то более мощное.Например, Python.
re.search()
может использоваться для поиска <ref>
и соответствующего </ref>
.Затем re.match()
можно использовать для преобразования того, что внутри, с помощью регулярных выражений, подобных тем, которые используются в sed.Этот алгоритм должен быть заключен в цикл while
, чтобы пройти весь документ.