Então, o que fiz foi aparar o arquivo list
nos dois primeiros valores (ID; Name), depois usei esse script no texto de origem arquivo :
#!/usr/bin/env bash
dos2unix "$1"
sed -e '/Sideboard/,$d' "$1" -e '/^$/,$d' | tee source_strip | cut -d ' ' -f 2- >temp
while IFS= read f; do
sed -n "s/\([0-9]*\);$f$/\./p" list
done <temp >IDs
sed -ni 's/^\([0-9]*\) \([a-zA-Z]*\)/\t/p' source_strip
paste IDs source_strip > final
cat final
É claro que isso pressupõe um número de ID para cada pesquisa de nome, caso contrário, isso não funcionará corretamente. Certamente há uma maneira mais elegante de fazer isso, mas neste caso funciona!