Простой sed
-
$: printf "us-east-1\nap-southeast-1\n" |
sed -E 's/-(.)[^-]*/\1/g'
Чтобы сохранить некардинальные спецификации, такие как southeast
, отличные от south
за счет добавления необязательного дополнительного символа -
$: printf "us-east-1\nap-southeast-1\n" |
sed -E '
s/north/n/;
s/south/s/;
s/east/e/;
s/west/w/;
s/-//g;'
Если у вас может быть south-southwest
, добавьте g
к этим направленным сокращениям.
, если вы ДОЛЖНЫ иметь ровно 4 символа вывода, я рекомендую сопоставить восемь или 16 направлений карты с конкретными символами, чтобы север былN, северо-восток, может быть, O и северо-запад M ... такие вещи.