我有一个 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
的内容,而且我也不知道如何做最后一件事...帮助?
最佳答案
这是您要查找的最后一条命令:
wc -L
-L, --max-line-length: print the maximum display width
您还可以使用 tr
和 sed
压缩
for i in $mystring; do echo $i | tr -cd /\\n; done | wc -L
它的工作原理如下:一次加载 $mystring
的一个组件,删除除 /
或换行符之外的所有内容,然后将其提供给上面的内容剩下的工作。
顺便说一下,能否保证所有路径都不会包含空格?
关于linux - 从脚本中的字符串中查找最长路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40951476/