想象一下这样的道路:
/a/b/c/d/e/...
...
可以是更深层次的任何级别,即我不知道,提前是否会有2,3或13级深度。
如何使用FreeBSD shell(例如/bin/sh
)提取此路径的第一个“N”部分?例如,前4个级别,以便我得到/a/b/c/d
?
答案 0 :(得分:2)
您可以使用cut
:
s='/a/b/c/d/e/f/g/h/i/j/k'
echo "$s" | cut -d/ -f1-5
/a/b/c/d
或者,如果您使用BASH
,则可以使用shell数组:
IFS=/ arr=($s)
然后从数组中打印所需的元素:
IFS=/ echo "${arr[*]:0:5}"
/a/b/c/d