Как извлечь подстроку в оболочке Рыба?
Я получил следующую переменную:
set location "America/New_York"
и хотите отобразить только часть до /
(косая черта) используя fish
Синтаксис оболочки.
Ожидаемый результат
Америка
Баш эквивалент
Используя bash, я просто использовал расширение параметра:
location="America/New_York"
echo ${location##*/}"
Вопрос
Как мне это сделать в fish
-путь?
3 ответа
В настоящее время в выпуске нет встроенной манипуляции со строками, поэтому вам придется использовать внешние инструменты, такие как cut
или же sed
или же awk
,
В настоящее время мастер рыбы, есть встроенный string
имеет несколько подкоманд, включая replace
так что вы сможете сделать
string replace -r "/.*" "" -- $location
или же
set location (string split "/" -- $location)[1]
Возможным решением является использование cut
но это выглядит хакерски:
set location "America/New_York"
echo $location|cut -d '/' -f1
Америка
Используйте селектор полей
-f
из
string split
> string split / "America/New_York" -f1
America
и соответственно:
set location (string split / "America/New_York" -f1)
Примечание: для последней строки с несколькими косыми чертами я не знаю ничего лучше, чем громоздкий
-r -m1 -f2
:
> string split / "foo/bar/America/New_York" -r -m1 -f2
New_York