Как разбить строку на косую черту в 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##*/}