Home > Software design >  How to remove duplicate characters when combining two strings in shell script
How to remove duplicate characters when combining two strings in shell script

Time:07-20

I have 2 strings and I want to combine them and remove duplicates.

Example:

str1=/home/username
str2=/home/username/project
str3=$str1 $str2

Result:

echo $str3
>> /home/username/project

How do i provided it like str3?

CodePudding user response:

There is no built-in facility for this. If you know that str2 may or may not contain str1 as a prefix, you can exclude it with a parameter expansion:

str3=$str1${str2#"$str1"}

The quotes are necessary to guard against shell metacharacters in the pattern; for example, ${foo#*} removes everything from foo whereas ${foo#"*"} only removes a literal asterisk if present.

  • Related