Я нашел ответ отhttps://www.reddit.com/r/bashonubuntuonwindows/comments/8fcbs5/update_of_opensuse_on_wsl_error/:вам нужно изменить URI репозитория с HTTP на HTTPS. Я только что сделал это и смог увидеть новые пакеты. У меня были только репозитории обновлений oss и oss _, поэтому процесс, которому я следовал, был:
sudo zypper rr oss
sudo zypper rr oss_update
sudo zypper ar https://download.opensuse.org/distribution/leap/42.3/repo/oss/suse/ oss
sudo zypper ar https://download.opensuse.org/update/leap/42.3/oss/ oss_update
sudo zypper ref
sudo zypper up
Чтобы убедиться, что это работает для вашей версии, найдите номер версии вашей системы и подставьте его в приведенные выше URL-адреса вместо 42.3
. (Вы можете убедиться, что URL-адреса действительны, открыв их в браузере. )Вы можете увидеть номер версии в выводе следующей команды:
cat /etc/os-release
Используйте только sed
, как в этом примере
echo "/* 73 */ private static int last = -1000;" |
sed 's#^/\*[[:blank:]]*\([0-9]*\)[[:blank:]]*\*/[[:blank:]]*\(.*\)$#\2 // JD \1#g'
private static int last = -1000; // JD 73
В sed
захваченные группы обозначаются с помощью \1
, \2
и т. д. вместо $1
, $2
и т. д. См. Назад _002dссылки -и -Подвыражения.html
-P
на -E
в grep
и используйте [[:digit:]]
или [0-9]+
вместо (\d+)
, так как вы не используете никакие другие совместимые с Perl -вещи и вам не нужен скобки (.*)
из grep
, это лишнее -E
к sed
, иначе вам придется покинуть свои группы захвата (...)
и+
\d+
, замените его на [[:digit:]]
или[0-9]+
$1
на \1
и $2
на \2
g
, JD создает только один комментарий в начале строки. grep -Erl '/\* *[[:digit:]]+ *\*/'. |
xargs sed -Ei 's/\/\* *([[:digit:]]+) *\*\/ (.*)/\2 \/\/ JD \1/'