Портативный для многих оболочек:
a=internationalization;
if [ "${#a}" -gt 2 ]; then
a="${a%"${a#?}"}$((${#a}-2))${a#"${a%?}"}";
fi
printf '%s\n' "${a}"
По функции (чуть менее портативный):
numeronym() { a="$1";
if [ "${#1}" -gt 2 ]; then
a="${a%"${a#?}"}$((${#a}-2))${a#"${a%?}"}";
fi;
printf '%s\n' "${a}";
}
Назовите это как:
$ numeronym internationalization
i18n
Если это должно быть awk:
$ echo internationalization |
awk '{ print (NF>2) ? $1 NF-2 $NF : $0 }' FS=''
i18n
Пакет, который вам нужен, называется не libatomic
, а libatomic1
. Вы можете установить его с:
apt install libatomic1
Очень странно, он сказал, что это уже последняя версия, но моя проблема теперь необъяснимым образом исправлена. Все, что мне нужно было сделать, это (как root):
apt install libatomic1 #said it was already latest version
node #command not found
nvm
nvm install v12.18.4 #already installed, creating alias
node #works this time!
Теперь мой узел, npm и все остальное работает как положено.
(если кто-то еще хочет опубликовать лучшее объяснение, сделайте это, и я приму ваш ответ)