【发布时间】:2020-06-06 20:41:21
【问题描述】:
我将find 命令的输出放入数组中,如下所示:
pathList=($(find /foo/bar/ -type d))
如果数组包含多个等长的最长路径,如何提取数组中找到的最长路径?:
echo ${pathList[@]}
/foo/bar/raw/
/foo/bar/raw/2020/
/foo/bar/raw/2020/02/
/foo/bar/logs/
/foo/bar/logs/2020/
/foo/bar/logs/2020/02/
提取后,我想将/foo/bar/raw/2020/02/ 和/foo/bar/logs/2020/02/ 分配给另一个数组。
谢谢
【问题讨论】:
-
wrt
I put the output of find command into array like this:- 不要这样做,因为它不健壮,例如当您的目录名称包含空格时,它将失败。请参阅stackoverflow.com/q/23356779/1745001,了解如何使用命令的输出填充数组。另外,定义“最长” - 最多总字符或必须子目录或其他内容? -
能否请您确认一下您想要获取的最长路径的定义,我认为您需要按目录级别输出,请在此处确认。
-
@RavinderSingh13,是的,“最长路径”是指目录级别。您的解决方案效果很好,因此我接受它作为答案