пример строки:Как разбить строку на прямой косой черты в Баш
/gasg/строка
ожидаемый результат: string
Символы на удалить: все символы между «/» символами включая символы
пример строки:Как разбить строку на прямой косой черты в Баш
/gasg/строка
ожидаемый результат: string
Символы на удалить: все символы между «/» символами включая символы
С sed
:
$ echo "/gasg/string" | sed -e 's/\/.*\///g'
string
С Buil в Баше строками:
$ s="/gag/string"
$ echo "${s##/*/}"
string
Ваши строки выглядят так же, как Unix имена пути. Именно поэтому вы можете также использовать утилиту basename
- это returnes последнюю часть данного Unix имя пути:
$ basename "/gag/string"
string
# It works with relative paths and spaces too:
$ basename "gag/fas das/string bla bla"
string bla bla
Первая косая черта в расширении параметра не требуется. В этом случае необходимы цитаты по заданию, но вы должны использовать их для расширения по привычке. –
Я согласен, что первый '/' не нужен, но я добавил его, чтобы проиллюстрировать эту точку. –
Ваши строки выглядят точно так же, как и Unix-пути. - Да, это было мое намерение получить последний partion данного пути и с basename его, как «find -exec basename {} \;», что для меня блестяще! Спасибо за совет. – user1306777
AWK также - использование слэш в качестве разделителя и печати последнего поля
echo "/gas/string" | awk -F/ '{print $NF}'
или вырезать - но что будет работать только если у вас есть такое же количество каталогов раздеться
echo "/gasg/string" |cut -d/ -f 3
вы можете использовать Баш строки манипуляции
a='/gasg/string'
echo ${a##*/}
'batween"/"символы' Что должно быть, если есть только одна косая черта или вообще нет косых черт? Или текст перед первой косой чертой? –