Procura e Substitui o valor no arquivo binário HTML no UNIX

0

Estou tentando pesquisar e substituir alguns valores no meu modelo HTML já criado. Sendo um arquivo binário, até agora não obtive êxito na pesquisa e na substituição do meu HTML.

Eu preciso procurar pela string 1111 e substituí-la por 1234 aqui.

style='mso-bookmark:_MailOriginal'><span style='color:#1F497D'>1111</span><o:p></o:p></span></p>

Por favor, sugira o comando que pode ser usado, já que o código-fonte HTML tem muitos caracteres HEX.

O HTML que eu quero substituir é o link

    
por scribbler 20.10.2016 / 17:31

3 respostas

1

Você também pode conseguir isso com um script simples escrito em python:

replace.py

f = open("index.html",'r') # open file with read permissions
filedata = f.read() # read contents
f.close() # closes file
filedata = filedata.replace("1111", "1234") # replace 1111 with 1234
filedata = filedata.replace("2222", "2345") # you can add as many replace rules as u need
f = open("index.html",'w') # open the same (or another) file with write permissions
f.write(filedata) # update it replacing the previous strings 
f.close() # closes the file

execute:

python replace.py
    
por 20.10.2016 / 19:39
1

Exemplo de arquivo test.txt

should not touch 1111
<body>
should touch 1111
</body>
should not touch 1111

Usando GNU Awk 3.1.7

awk 'BEGIN {s=0};{if (/<body/) {s=1;} else if (/<\/body>/) {s=0;};if (s) {gsub(1111,1234)}};1' test.txt

Resultado

should not touch 1111
<body>
should touch 1234
</body>
should not touch 1111
    
por 20.10.2016 / 18:49
0

sed (1) O Stream EDitor é uma boa ferramenta para pesquisa (regex) e substituição.

Verifique man 1 sed

sed -e s/foo/bar/g infile > outfile

substituirá tudo o que corresponda à expressão regular "foo" pela "barra" de substituição.

PS. Use o -r flag se você precisar usar referências anteriores na parte de substituição.

    
por 20.10.2016 / 17:35