Страница 1 из 1
Откинуть имя файла из полного пути к нему
Добавлено: 2008-09-11 0:21:20
serge
В csh есть так называемые модификаоры строк. Например:
Результатом будет строка
А вот как подобное на sh сделать? Можно обходными путями.
Re: Откинуть имя файла из полного пути к нему
Добавлено: 2008-09-11 7:18:31
zg
Код: Выделить всё
BASENAME(1) FreeBSD General Commands Manual BASENAME(1)
NAME
basename, dirname -- return filename or directory portion of pathname
SYNOPSIS
basename string [suffix]
basename [-a] [-s suffix] string [...]
dirname string
DESCRIPTION
The basename utility deletes any prefix ending with the last slash `/'
character present in string (after first stripping trailing slashes), and
a suffix, if given. The suffix is not stripped if it is identical to the
remaining characters in string. The resulting filename is written to the
standard output. A non-existent suffix is ignored. If -a is specified,
then every argument is treated as a string as if basename were invoked
with just one argument. If -s is specified, then the suffix is taken as
its argument, and all other arguments are treated as a string.
Код: Выделить всё
zg# basename /usr/bin/pr1
pr1
zg# dirname /usr/bin/pr1
/usr/bin
zg#
Re: Откинуть имя файла из полного пути к нему
Добавлено: 2008-09-11 7:22:28
serge
Как всегда все оказалось просто

Re: Откинуть имя файла из полного пути к нему
Добавлено: 2008-09-11 12:20:10
Гость
serge писал(а):echo $a:h
echo ${a%/*}
сложно что ль глянуть раздел о переменных в sh(1)?
ps, с каких пор basename(1) перестала быть внешней тулзой?
Re: Откинуть имя файла из полного пути к нему
Добавлено: 2008-09-11 13:18:28
zg
Гость писал(а):ps, с каких пор basename(1) перестала быть внешней тулзой?
ни с каких, в этом её преемущество - работает в любом шелле