Необходимо заменить Keep-Downloaded-Packages
наapt
:
Binary::apt::APT::Keep-Downloaded-Packages "1";
в apt.conf
или фрагмент /etc/apt.conf.d/
, например.
echo 'Binary::apt::APT::Keep-Downloaded-Packages "1";' | sudo tee /etc/apt/apt.conf.d/10apt-keep-downloads
(apt
на самом деле не выполняет «автоочистку», не сохраняет загруженные пакеты.)
Посмотрим, это то, что вы ищете:
mystr='a very, very, extremely, incredibly long string of text that contains the phrase he said, "Hello!" somewhere in the middle'
$ var=$(echo "$mystr" | grep -o -b "Hello!" | head -1)
$ echo "$var"
91:Hello!
$ pos="${var%:*}"
$ echo "$pos"
91
Я думаю, что он ищет символы второй строки в первой. Вы можете использовать grep
mystr='a very, very, extremely, incredibly long string of text that contains 2 the phrase he said, "Hello!" somewhere in the middle'
echo "$mystr"| grep -o -b Hello!
Он вернется 91:Hello!
. Здесь индексация начинается с 0.
Если таких вхождений, как a, несколько, вывод будет
0:a 58:a 65:a 77:a 85:a
Если вы также хотите искать двойные кавычки, избегайте их,
echo "$mystr"| grep -o -b \"Hello!\"
Вывод будет
90:"Hello!"
Только с расширением параметров:
mystr='a very, very, extremely, incredibly long string of text that contains the phrase he said, "Hello!" somewhere in the middle'
searchstr='"Hello!"'
newstr="${mystr%%$searchstr*}"
echo "position = $((${#newstr} + 1))"