Как извлечь подстроку в Fish shell?
Я получил следующую переменную:
set location "America/New_York"
и хотите отображать только часть перед /
(косой чертой) с использованием синтаксиса оболочки fish
.
Ожидаемый результат
Америка
Bash эквивалент
Используя bash, я просто использовал расширение параметра:
location="America/New_York"
echo ${location##*/}"
Вопрос
Как это сделать в fish
-way?
Ответы
Ответ 1
Начиная с fish 2.3.0, есть встроенная string
которая имеет несколько подкоманд, включая replace
, так что вы сможете сделать
string replace -r "/.*" "" -- $location
или же
set location (string split "/" -- $location)[1]
См. Http://fishshell.com/docs/current/commands.html#string.
Кроме того, внешние инструменты, такие как cut
, sed
или awk
работают.
Ответ 2
Возможное решение - использовать cut
, но выглядят хакерскими:
set location "America/New_York"
echo $location|cut -d '/' -f1
Америка