从脚本中的字符串中查找最长路径

时间:2016-12-03 19:11:09

标签: linux bash

我有一个bash脚本和一个变量mystring。 在运行结束时,mystring将如下所示:/dir1/dir2 /dir1/dir5/dir6 /dir1/dir9/dir20/dir99 ...这基本上是一个字符串,其中不同的路径用空格分隔。

我需要返回字符串中最长路径的深度。现在我有方向,但我被卡住了:

我尝试将其插入到我的脚本中:

cat $mystring | tr ' ' '\n' | sed 's/[^/]*//g' | # now print length of longest string

它无法识别我正在尝试使用$mystring的内容,而且我也不知道如何做最后一件事......帮助?

1 个答案:

答案 0 :(得分:0)

你应该使用数组作为目录来避免路径中的空间问题
对于字符串的长度,您可以使用$ {#VAR}

DIRS=( "/tmp" "/tmp1" "/tmp/xx xxx/x1" )
MAXLENGTH=0
for LENGTH in "${DIRS[@]}"
do
    if [ "$MAXLENGTH" -lt "${#LENGTH}" ]
    then 
        MAXLENGTH="${#LENGTH}"
    fi
done
echo $MAXLENGTH