我的回报中有这个结构:
.//r-repos/gbm/DESCRIPTION
.//r-repos/GCD/DESCRIPTION
.//ggplot2/DESCRIPTION
我想只显示DESCRIPTION文件的父文件夹(gbm,gcd,ggplot2),但我不知道为什么“ggplot2”是屏幕上唯一的输出。
r_path=$(find "$dossierpath" -iname DESCRIPTION -exec dirname {} \;)
for var in "$r_path"
do
basename "$var"
done
我有什么:
输出:ggplot2
我想要的是:输出:gbm,gcd,ggplot2
非常感谢
答案 0 :(得分:1)
那是因为你决定引用你的变量:$r_path
,这是find
命令的返回。
如果你的目录名中有空格和/或换行符等,我会推荐这样的东西:
find "$dosierpath" -iname DESCRIPTION -print0 | while IFS= read -r -d '' file; do
basename "$(dirname "$file")"
done