Bashで2つの文字列の重なりを見つける方法は? [閉鎖]

Bashで2つの文字列の重なりを見つける方法は? [閉鎖]

2つの文字列があります。たとえば、次のように設定されます。

string1="test toast"
string2="test test"

私が望むのは、文字列の先頭から重なる部分を見つけることです。重複とは、上記の例で文字列「test t」を参照することです。

# I look for the command 
command "$string1" "$string2"
# that outputs:
"test t"

文字列が存在する場合、string1="atest toast"; string2="test test"チェックは最初から始まり、「a」は先頭にあるため重複しませんstring1

ベストアンサー1

エラーチェックを追加することで、このような機能を考えることができます。

common_prefix() {
  local n=0
  while [[ "${1:n:1}" == "${2:n:1}" ]]; do
    ((n++))
  done
  echo "${1:0:n}"
}

おすすめ記事