Até onde eu sei, \s é uma expressão regular em Perl que é igual a [[:blank:]] em sed . Dentro de [ ... ] , \s significa "um \ e um s ". Observe também que, mesmo que [^\s]+ fosse igual a [^␣]+ , isso não teria correspondido a Status Update devido ao espaço intermediário.
A substituição substituirá toda a correspondência com o primeiro grupo entre aspas duplas. Você provavelmente quer pegar todas as três colunas ou você acabará com somente a última coluna. E, como você está tentando corresponder a linha inteira, você deve ancorar a expressão no começo e no final com ^ e $ e descartar a g no final.
Alternativa:
$ sed -E 's/[[:alpha:]].+/"&"/' myfile
12 42956 "Cinema - 3D/Multiplex "
7 12560 "Status Update "
5 184 "Movie "
Isso localizará a última coluna pelo fato de que seus dados parecem sempre começar com um não dígito. A expressão simplesmente corresponderá ao restante da linha do primeiro caractere alfabético e substituirá toda a correspondência por uma versão com aspas duplas da correspondência.
Os dados da questão tinham espaços no final e as aspas incluiriam esses. Para evitar os espaços no final:
$ sed -E -e 's/[[:blank:]]*$//' -e 's/[[:alpha:]].+/"&"/' myfile
12 42956 "Cinema - 3D/Multiplex"
7 12560 "Status Update"
5 184 "Movie"
Alternativamente,
while read -r a b c; do printf '%d\t%d\t"%s"\n' "$a" "$b" "$c"; done <myfile
12 42956 "Cinema - 3D/Multiplex"
7 12560 "Status Update"
5 184 "Movie"