С утилитами GNU см. также:
xargs -rd '\n' basename -a --
Который на входе list.txt
типа:
./folder1/folder2/folder3/
./foo
bar///
/
дает:
folder3
foo
bar
/
Модификаторzsh
:t
(изcsh
)дает ""
вместо "/"
вместо"/"
$ printf '<%s>\n' "${(@)${(f)$(<list.txt)}:t}"
<folder3>
<foo>
<bar>
<>
Когда вы устанавливаете complete
на enhance
, точки, дефисы и подчеркивания рассматриваются как разделители слов, а не как символы, как вы ожидали.
Таким образом, в основном ответ - нет, так как это "особенность" установки complete
на enhance
.