在shell中找到两个路径字符串的最长匹配
我有两个像这样的字符串
/home/user/Desktop/aaaa/Final/
/home/user/Desktop/aaaa/folder3333/IMAG0486.jpg
我的结果字符串应该是这样的
/home/user/Desktop/aaaa/Final/folder3333/IMAG0486.jpg
,当我在这种情况下找到最长的匹配时,
意思“/home/user/Desktop/aaaa”
然后我添加第二个字符串的其余部分
“文件夹3333/IMAG0486.jpg”
到第一个字符串
,结果字符串是
/home/user/Desktop/aaaa/Final/folder3333/IMAG0486.jpg
I have two strings like this
/home/user/Desktop/aaaa/Final/
/home/user/Desktop/aaaa/folder3333/IMAG0486.jpg
and my result string should be something like this
/home/user/Desktop/aaaa/Final/folder3333/IMAG0486.jpg
meaning when I find the longest match in this case
"/home/user/Desktop/aaaa"
then I add the rest of the second string
"folder3333/IMAG0486.jpg"
to the fist string
and the result string is
/home/user/Desktop/aaaa/Final/folder3333/IMAG0486.jpg
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
将
/
上的路径拆分为数组。迭代数组直到找到差异,将第二个数组的其余部分添加到输出中。我在代码中留下了调试打印,通过删除它们可以显着缩短代码。Split the paths on
/
to arrays. Iterate over the arrays until you find the difference, add the rest of the second array to the output. I left the debugging prints in the code, by removing them it can be shortened significantly.这对我有用并且可以工作单元测试:
This works for me and has working unit tests:
不如其他解决方案可靠,但对于常规情况效果很好:
Less reliable than other solutions, but works fine for regular cases: