YonghanKim
YonghanKim

Reputation: 23

How to remove duplicate characters when combining two strings in shell script

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?

Upvotes: 1

Views: 218

Answers (1)

tripleee
tripleee

Reputation: 189377

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.

Upvotes: 2

Related Questions