我正在搜索一个目录,但在我的实例中只返回最后一个目录xyz
。然后,我想使用 sed 通过替换该目录的所有其他扩展来实现这一点。
我尝试过的:
find **/macml/xyz -maxdepth 1 -not -path '*__*' -type d
#Returns the following
macml/xyz
然后将其与 sed 结合:
find **/macml/xyz -maxdepth 1 -not -path '*__*' -type d -exec sed -E "s|^[macml\/]*||g" {} \+ &
什么也不返回,
预期输出:
xyz
答案1
要从您尝试的命令中获取“xyz”的预期输出,您可以使用以下命令:
find /macml/xyz -maxdepth 1 -not -path '__' -type d -exec bash -c 'echo "${0##*/}"' {} + &
此命令将通过删除路径的“macml/”部分来返回目录“xyz”。