bobbyiliev/introduction-to-bash-scripting

Help: a variable list filtering via sed + "blacklist-variable"

blackcrack opened this issue · 1 comments

dirlist=$(ls /home) =>

dirlist="blackcrack akira lost&found workshop garage office"
blacklist="lost&found garage workshop"

the way to the result
echo $result
blackcrack akira office

how become from the $dirlist i a filtering with the 3 words in the $blacklist
to a result with the rest of the words..

i have try it via oneliner :

[blackcrack@blackysgate ~/bearbeit-net]$ dirlist=$(ls /home) ; blacklist="lost&found garage workshop" ; echo $dirlist | sed 's/$blacklist//'
blackcrack akira lost&found workshop garage office
[blackcrack@blackysgate ~/bearbeit-net]$

but it works not really simply with sed.. mus i use there a loop or something over "while"

best

Presuming your variables are as above:

dirlist="blackcrack akira lost&found workshop garage office"
blacklist="lost&found garage workshop"

If you turn them into arrays then yes, you can exclude one from the other:

dirlist_array=(${dirlist})
blacklist_array=(${blacklist})

for x in ${blacklist_array[@]}
do
    dirlist_array=("${dirlist_array[@]/$x}")
done

That will give you:

$ echo ${dirlist_array[@]}
blackcrack akira office

Is that of any use?