Existem várias sintaxes diferentes expressão regular . (\s*) corresponde a uma sequência de espaços em branco em Perl e em muitos outros programas modernos que imitam suas regexes. Sed usa uma variante mais antiga de expressões regulares básicas , em que os parênteses representam a si próprios e \(…\) é usado para agrupamento. O GNU sed (a versão no Linux) tem uma opção -r para usar expressões regulares estendidas (que regexes do Perl estendem mais) em vez disso. Além disso, | significa para si mesmo em BRE, mas deve ser precedido por uma barra invertida em ERE.
s/[ \t]\+|/|/ substitui o espaço em branco seguido por um | com o GNU sed. Se você quiser um comando sed compatível com POSIX, use s/[ ][ ]*|/|/ , onde cada par de colchetes contém um espaço e uma guia, pois \t e \+ são extensões GNU. Além disso, o comando s substitui apenas uma ocorrência por linha: adicione o sufixo g para substituir todas as ocorrências.
sed -i 's/[ \t]\+|/|/g' DataStats0914.txt