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

标签 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 的内容,而且我也不知道如何做最后一件事...帮助?

最佳答案

这是您要查找的最后一条命令:

wc -L

-L, --max-line-length: print the maximum display width

您还可以使用 trsed 压缩

for i in $mystring; do echo $i | tr -cd /\\n; done | wc -L

它的工作原理如下:一次加载 $mystring 的一个组件,删除除 / 或换行符之外的所有内容,然后将其提供给上面的内容剩下的工作。

顺便说一下,能否保证所有路径都不会包含空格?

关于linux - 从脚本中的字符串中查找最长路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40951476/

相关文章:

ruby - 无法加载 Nokogiri

bash - 如何在不实际更改到该目录的情况下从特定目录执行命令

linux - Ubuntu Shell 脚本问题 : convert output of command into variable

linux - 有没有一种检测陈旧的 NFS 挂载的好方法

linux - 匹配模式并连接两个文件中的字段

c - 使用 read() 系统调用反转文件中的每一行

python - Tkinter 对象在 Linux 上不工作

linux - 在磁盘上找到一堆随机排序的图像并复制到目标目录

bash - 使用sed将一些大写字符替换为小写字符

linux - bash 脚本 LAMP 创建 "yes"