Если вы используете ed
вместо sed
, вы можете использовать адрес регулярного выражения с отрицательным смещением:
g/PRIMARY/-1 s/,$/)/
Пр.
$ printf 'g/PRIMARY/-1 s/,$/)/\n,p\nq\n' | ed -s file
ID_SOUR_CALENDAR BIGINT NOT NULL DEFAULT 0 COMPRESS 0 )
UNIQUE PRIMARY INDEX ( CALENDAR_DATE );
ID,
ID_SOUR )
PRIMARY INDEX ( CALENDAR_DATE );
или (для редактирования места -)
printf 'g/PRIMARY/-1 s/,$/)/\nwq\n' | ed -s file
Замена будет соответствовать ВСЕМ экземплярам /PRIMARY/
-, если вы хотите заменить только первый, удалите модификатор g
.
Подведение итогов
lsb_release -cs
возвращено bionic
, то есть Ubuntu 18.04 r-base
предполагали наличие репозиториев Ubuntu 20.04(focal
)Из комментариев и чата мы обнаружили, что основная проблема заключалась в сочетании различных дистрибутивов в источниках пользователя, включая следующие специфичные для R:
deb cloud.r-project.org/bin/linux/… focal-cran40/
deb [arch=i386,amd64] cran.rstudio.com/bin/linux/… xenial/
deb cloud.r-project.org/bin/linux/… bionic-cran40/
После комментирования всех не -бионических репозиториев и повторного -запуска apt update
пользователь смог завершить установку.