Longest common prefix of two strings in bash

bash, string-formatting

Solution

In sed, assuming the strings don't contain any newline characters:

string1="test toast"
string2="test test"
printf "%s\n%s\n" "$string1" "$string2" | sed -e 'N;s/^\(.*\).*\n\1.*$/\1/'

Problem

I have two strings. For the sake of the example they are set like this: ``` string1="test toast" string2="test test" ``` What I want is to find the overlap starting at the beginning of the strings. With overlap I mean the string "test t" in my above example. ``` # So I look for the command command "$string1" "$string2" # that outputs: "test t" ``` If the strings were `string1="atest toast"; string2="test test"` they would have no overlap since the check starts from the beginning and the "a" at the start of `string1` .

Original source

Related problems