.
em um padrão significa "qualquer caractere". .\{64\}
significa "64 caracteres", nenhum deles.
é uma referência anterior ao primeiro grupo correspondente, ou seja, o que foi correspondido pelo primeiro par de
\(...\)
parênteses. Para inserir um literal 1
, não prefixe a barra invertida.
Você pode usar "endereços" em sed para restringir um comando apenas a algumas linhas, por exemplo,
sed '/^.\{46\}STRING ONE \{8\}/s/^\(.\{64\}\).\{16\}/AAAABBBBCCCC /'
que lê Se a linha começar com 46 caracteres seguidos por STRING ONE
e 8 espaços, lembre-se dos primeiros 64 caracteres em e substitua-os e os seguintes 16 caracteres pelos caracteres lembrados, seguidos por
AAAABBBBCCCC
e quatro espaços.
Para adicionar mais comandos com endereços, separe-os com ponto e vírgula ou use vários -e
switches:
sed -e '/address1/s/pattern1/replacement1/;/address2/s/pattern2/replacement2/'
sed -e '/address1/s/pattern1/replacement1/' -e '/address2/s/pattern2/replacement2/'