Анкер $
:
Matches the end of a string without consuming any characters. If multiline mode is used, this will also match immediately before a newline character.
Это отличается от "последнего появления", так как ваши строки на самом деле заканчиваются на txt$
, а не на bar$
и не совпадают.
Один из способов сопоставить только последнее вхождение — использовать rev
для реверсирования вашей строки и замены только первого вхождения (, конечно, ваши замены также должны быть реверсированы!)
function searchReplaceLastMatchOnly() {
# spaces are set as defaults
local target=$(rev <<<"${1:- }")
local search=$(rev <<<"${2:- }")
local replace=$(rev <<<"${3:- }")
local esearch=$(printf '%s\n' "$search" | sed 's:[][\/.^$*]:\\&:g')
local ereplace=$(printf '%s\n' "$replace" | sed 's:[\/&]:\\&:g;$!s/$/\\/')
result="$(printf "%s" "$target" | sed "s/${esearch}/${ereplace}/" | rev)"
printf "%s" "$result"
}
Обратите внимание, :оператор g
был удален из команды sed
, поэтому заменяется только первое вхождение . Кроме того, мы экранируем переменные , которые будут переданы в sed
, чтобы предотвратить их нежелательную интерпретацию.
Репозиторий R поддерживает две разные версии R:
Судя по вашему вопросу, вам нужен первый. Linux Mint 18 основан на Ubuntu Xenial, поэтому его версия должна подойти. Затем, согласно официальному руководству , вам нужна другая строка в/etc/apt/sources.list
:
deb https://cloud.r-project.org/bin/linux/ubuntu xenial-cran35/
Вы должны иметь возможность редактировать свой /etc/apt/sources.list
с помощью текстового редактора, такого как nano
. При использовании nano
вы можете открыть файл для редактирования с помощью :
sudo nano /etc/apt/sources.list
Перейдите к записи с помощью клавиш со стрелками и исправьте ее, нажмите Ctrl + X , введите y
и нажмите Enter , чтобы сохранить и выйти редактирование.