OK, нашел один способ, используя perl
:
cat > mytestfile.txt <<'EOF'
"'iceberg'"
"'ice cliff'"
"'ice field'"
"'inlet'"
"'island'"
"'islet'"
"'isthmus'"
EOF
IFS='' read -r -d '' REPLACER <<'EOF'
"'$oasis$'"
"'$ocean$'"
"'$oceanic trench$'"
EOF
# echo "$REPLACER"
IFS='' read -r -d '' LOOKFOR <<'EOF'
"'ice field'"
EOF
export REPLACER # so perl can access it via $ENV
# -pi will replace in-place but not print to stdout; -p will only print to stdout:
perl -pi -e "s/($LOOKFOR)/"'$1$ENV{"REPLACER"}'"/" mytestfile.txt
# also, with export LOOKFOR, this works:
# perl -pi -e 's/($ENV{"LOOKFOR"})/$1$ENV{"REPLACER"}/' mytestfile.txt
cat mytestfile.txt # see if the replacement is done
Вывод желаемый:
$ bash appendtest.sh
"'iceberg'"
"'ice cliff'"
"'ice field'"
"'$oasis$'"
"'$ocean$'"
"'$oceanic trench$'"
"'inlet'"
"'island'"
"'islet'"
"'isthmus'"
Я думаю, что первое и второе предложения Сато являются хорошими способами, но первое, возможно, самое простое, но требует pam-модуля (Yodal) и его обслуживания для работы. Ответ Сато Кацуры в комментариях об использовании точки доступа для отключения 2FA
Вдохновитесь тем, как это сделано для телефонов. Если у вас есть точка доступа дома, отключите 2FA, когда вы подключены к ней;
Идея Сато в комментариях о NFC стикере со считывателем NFC для облегчения входа дома
Если у вас есть считыватель NFC, используйте NFC стикер;
Идея Сато о GPS, которая, как мне кажется, здесь наиболее неточна, и потребляет много заряда батареи, а также требует использования смартфона
Если у вас есть GPS, используйте координаты и т.д.
Отключение 2FA даже дома может поставить под угрозу безопасность. В самом строгом смысле безопасности, я думаю, что 2FA логин не должен быть отключен даже дома. Простота - это просто эффективность.