Como uma primeira ideia, awk
:
awk -vRS='#[^#]+#' 'RT{gsub(/#/,"",RT);p[RT]=1}END{for(i in p)print i}' the_file
Mas essa decisão pode depender das outras operações que você precisa realizar.
Explicações conforme solicitado no comentário.
awk -vRS='#[^#]+#' ' # use /#[^#]+#/ as record separator
RT { # record terminator not empty?
gsub(/#/,"",RT) # remove the # parameter delimiter markup
p[RT]=1 # store it as key in array p
}
END { # end of input?
for (i in p) print i # loop through array p and print each key
}' the_file
A parte essencial é o uso da variável interna RT
(terminator de registro):
RT The record terminator. Gawk sets RT to the input text that matched the character or regular expression specified by RS.