sed
backreferences tem o formato ,
, etc.
$1
é mais semelhante a Perl. Além disso, se estiver usando expressões regulares básicas (BRE), você precisará excluir os parênteses (...)
formando um grupo, bem como ?
e +
. Ou você pode usar expressões regulares estendidas com a opção -E
.
Observe que as regexes sed são gananciosas, portanto, <.*>
corresponderá a <h> PIDAT <h>
nessa linha, em vez de parar no primeiro >
. E .*?
não faz sentido ( .*
já não pode corresponder a nada, portanto, torná-lo opcional via ?
é desnecessário).
Isso pode funcionar:
sed -i -Ee 's/^(<[^>]*>).*//' *.conll
[^>]
corresponde a tudo, exceto >
, por isso <[^>]*>
corresponderá a <h>
, mas não <h> PIDAT <h>
.