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