Find 和 sed 不返回输出

Find 和 sed 不返回输出

我正在搜索一个目录,但在我的实例中只返回最后一个目录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”。

相关内容