6

Как я могу отделить путь и элементы файла в цикле bash, как это?

for file in `find /my/path -name "*.ext"`
do
    #(path,onlyfile) = separate_path_and_file $file
    #dosomethingwith $onlyfile
done

2 ответа2

20

Я бы предложил dirname и basename:

for file in `find /my/path -name "*.ext"`
do
    path="$(dirname $file)"
    onlyfile="$(basename $file)"
    # ...
done
10

Ты не можешь Но вы можете сделать их отдельно.

$ foo=/usr/local/bin/bar
$ echo "${foo##*/}"
bar
$ echo "${foo%/*}"
/usr/local/bin

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .