Você pode fazer isso usando grep para encontrar o texto entre as tags e, em seguida, sed para remover as tags:
$ grep -oP '<category.+?>.*?</category>' file.txt | sed 's/<.*>\(.*\)<.*>//'
myotonic dystrophy
Myotonic dystrophy
DM
DM
DM
Explicação
-
grep -oP:-Pativa PCRE paragrepe-ofaz com que seja impressa apenas a string correspondente. -
'<category.+?>.*?</category>': diz aogreppara pesquisar tudo entre abrir e fecharcategorytags. -
sed 's/<.*>\(.*\)<.*>//': A saída dogrepacima é canalizada parased, o que simplesmente exclui as tags, substituindo-as por seu conteúdo (aquiporque parênteses foram usados para capturá-las).