Linux 过滤管道输入中的目录
我有一个bash命令,它列出了许多文件和目录。我想删除不是现有目录的所有内容。不管怎样,我可以不创建自己的脚本就做到这一点吗?也就是说,我想使用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 -
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类