Linux 过滤管道输入中的目录

Linux 过滤管道输入中的目录,linux,bash,Linux,Bash,我有一个bash命令,它列出了许多文件和目录。我想删除不是现有目录的所有内容。不管怎样,我可以不创建自己的脚本就做到这一点吗?也就是说,我想使用linux中已有的程序 例如,考虑到我有这个文件夹: dir1/ dir2/ file.txt 我希望能够运行以下功能: echo dir1 dir2 file.txt somethingThatDoesNotExist | xargs [ theCommandIAmLookingFor] ... | xargs -n 1 sh -c 'test -

我有一个bash命令,它列出了许多文件和目录。我想删除不是现有目录的所有内容。不管怎样,我可以不创建自己的脚本就做到这一点吗?也就是说,我想使用linux中已有的程序

例如,考虑到我有这个文件夹:

dir1/
dir2/
file.txt
我希望能够运行以下功能:

echo dir1 dir2 file.txt somethingThatDoesNotExist | xargs [ theCommandIAmLookingFor]
... | xargs -n 1 sh -c 'test -d "$0" && echo $0'
得到

dir1
dir2

您可以使用
grep-v
使用此命令行:

your_command | grep -vxFf <(printf '%s\n' */ | sed 's/.$//') -

请注意,glob
*/
打印当前路径中带有尾随
/
的所有子目录,
sed
用于删除最后的
/

您可以使用
grep-v
使用此命令行:

your_command | grep -vxFf <(printf '%s\n' */ | sed 's/.$//') -

请注意,glob
*/
打印当前路径中带有尾随
/
的所有子目录,
sed
用于删除最后一个
/

如果生成假定路径的命令使用更好的delimeter,则会更好,但您可能正在查找类似以下内容:

echo dir1 dir2 file.txt somethingThatDoesNotExist | xargs [ theCommandIAmLookingFor]
... | xargs -n 1 sh -c 'test -d "$0" && echo $0'

如果生成假定路径的命令使用更好的delimeter,则效果会更好,但您可能正在查找以下内容:

echo dir1 dir2 file.txt somethingThatDoesNotExist | xargs [ theCommandIAmLookingFor]
... | xargs -n 1 sh -c 'test -d "$0" && echo $0'

这些目录是嵌套的还是当前路径的子目录?请显示相关代码并说明确切的问题或错误。仅堆栈跟踪是不够的。另请参见。是否从列表中删除?还是从文件系统中删除?一个命令作为脚本计算有多复杂?列表的格式是什么?问题已澄清为什么要使用
echo
xargs
?似乎您想要
查找-键入d
这些目录是嵌套的还是当前路径的子目录?请显示相关代码并说明确切的问题或错误。仅堆栈跟踪是不够的。另请参见。是否从列表中删除?还是从文件系统中删除?一个命令作为脚本计算有多复杂?列表的格式是什么?问题已澄清为什么要使用
echo
xargs
?似乎您想要
查找-d类