Как установить dig на Cygwin?

Утилита basenameвозвращает компонент имени файла пути. Если мы обработаем вашу строку как путь, она вернетstr5:

string=str1/str2/str3/str4/str5
basename -- "$string"

Указанные выше выходные данные str5. Это будет работать, даже если $stringсодержит встроенные символы новой строки или начинается с-:

string='-str1/str2/str3/str
4/str5'
basename -- "$string"

Сохранение результата basenameв переменной выполняется обычной подстановкой команд:

newstring=$( basename -- "$string" )

Но подстановка команды удаляет все конечные символы новой строки :тот, который выводится basenameв качестве разделителя строки, а также все те, которые оказались в конце из $string.

Использование оператора ${var##pattern}в оболочках POSIX позволит избежать этого (, а также сэкономит разветвление процесса и выполнение отдельной команды):

string='very/
strange
file name

'
newstring=${string##*/}

Но даст разные значения для $strings, такие как /или/some/dir/

0
10.10.2021, 01:21
0 ответов

Теги

Похожие вопросы