У меня была точно такая же проблема после do-release-upgrade
в Ubuntu 18.04.1 LTS. Все акции, которые благополучно монтировались до этого, заканчивались этим уродливым
mount error: could not resolve address for server.domain.local: Unknown error
nslookup
разрешал правильно, syslog
и strace
ничего не показывали.
В конце концов, проблема заключалась в домене .local
вместе с изменением (, возможно, во время обновления выпуска )в /etc/nsswitch.conf
, ведь демон mDNS Avahi/Bonjour mdns4_minimal
был помещен перед поиском DNS.
Таким образом, проблема была решена после того, как я изменил порядок с
hosts: files mdns4_minimal [NOTFOUND=return] resolve [!UNAVAIL=return] dns
-
hosts: files dns mdns4_minimal [NOTFOUND=return] resolve [!UNAVAIL=return]
Я не могу вспомнить все полезные ссылки, но эта действительно помогла:https://askubuntu.com/a/853284/810573
Предполагая, что ввод является допустимым текстом в локали пользователя, вы можете:
sed 's/of.*//' < input
Это заменяет of
и любое количество(*
)из символов (.
), следующих за ним (, поэтому остановится на первом байте, который не является частью допустимого символа в локали в большинстве sed
реализации¹ )с пустой строкой.
Если вы не можете гарантировать, что кодировка ввода соответствует языковому стандарту пользователя и что это не одна из тех кодировок символов, где некоторые символы, отличные от o
, имеют кодировку, оканчивающуюся на кодировку o
(, например BIG5², BIG5 -HKSCS, GBK, GB18030 ), можно было сделать:
LC_ALL=C sed 's/of.*//' < input
В качестве примера проблемы с текстовым вводом, отличным от -, или с вводом, закодированным с помощью шарма, отличного от локали, и с реализацией GNUsed
:
$ locale charmap
UTF-8
$ printf 'Point of St\351phane\n' | sed 's/of.*//'
Point �phane
$ printf 'Point of St\351phane\n' | LC_ALL=C sed 's/of.*//'
Point
(здесь с Stéphane
, закодированным в латинском -1 или латинском -0, который обрабатывается sed
, работающим в локали с кодировкой UTF -8, где 0xe9 (0351 )сама по себе не может быть частью действительного символа ).
В качестве примера проблемы с кодировками символов, такими как BIG5 -HKSCS:
$ echo trèfle of concern | iconv -t BIG5-HKSCS | LC_ALL=C sed 's/of.*//'
tr�
$ echo trèfle of convern | iconv -t BIG5-HKSCS | LC_ALL=zh_HK.big5hkscs sed 's/of.*//' | iconv -f BIG5-HKSCS
trèfle
Так как символ U+00E8 è
кодируется как 0x88 0x6f, 0x6f также является кодировкой o
. Вам нужно sed
запустить в локали, которая использует эту карту символов для правильного декодирования этих символов.
¹ некоторые sed
реализации также могут просто завершиться ошибкой, из-за которой ввод не может быть декодирован в этих случаях
² Компания Acer, которую вы упомянули, была одной из тех больших пятерок, которые изобрели эту кодировку.