Как разбить строку на косую черту в bash
example String:
/gasg/строка
ожидаемый результат: string
Символы для удаления: все символы между символами "/", включая символы
Ответы
Ответ 1
С sed
:
$ echo "/gasg/string" | sed -e 's/\/.*\///g'
string
С построением строк bash:
$ s="/gag/string"
$ echo "${s##/*/}"
string
Ваши строки выглядят точно так же, как имена путей Unix. Вот почему вы также можете использовать утилиту basename
- она возвращает последнюю часть данного имени Unix:
$ basename "/gag/string"
string
# It works with relative paths and spaces too:
$ basename "gag/fas das/string bla bla"
string bla bla
Ответ 2
Также awk - использовать слэш как разделитель и печатать последнее поле
echo "/gas/string" | awk -F/ '{print $NF}'
Или вырезать - но это будет работать, только если у вас есть одинаковое количество каталогов для выделения
echo "/gasg/string" |cut -d/ -f 3
Ответ 3
вы можете использовать bash string manipulation
a='/gasg/string'
echo ${a##*/}