加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – 什么是shell命令来查找unix中两个字符串中最长的公共子

发布时间:2020-12-14 02:02:52 所属栏目:Linux 来源:网络整理
导读:什么是 shell命令来查找unix中两个字符串的最长公共子字符串? 喜欢:foo’abcdefghi”abjklmdefnop’ 打印:def 解决方法 我不确定是否有一个命令可以为您完成这项工作但是下面的bash脚本应该这样做. #!/bin/bashword1="$1"word2="$2"if [ ${#word1} -lt ${
什么是 shell命令来查找unix中两个字符串的最长公共子字符串?
喜欢:foo’abcdefghi”abjklmdefnop’
打印:def

解决方法

我不确定是否有一个命令可以为您完成这项工作但是下面的bash脚本应该这样做.

#!/bin/bash

word1="$1"
word2="$2"
if [ ${#word1} -lt ${#word2} ]
then
        word1="$2"
        word2="$1"
fi
for ((i=${#word2}; i>0; i--)); do
        for ((j=0; j<=${#word2}-i; j++)); do
                if [[ $word1 =~ ${word2:j:i} ]]
                then
                        echo ${word2:j:i}
                        exit
                fi
        done
done

将上面保存为文件substr.sh
做chmod x substr.sh

pranithk @ ~
09:24:32 :) $./substr.sh 'abcdefghi' 'abcdeghi'
abcde

pranithk @ ~
09:24:33 :) $./substr.sh 'abcdefghi' 'abjklmdefnop'
def

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读