Ajuda com SED [RESOLVIDO]

1. Ajuda com SED [RESOLVIDO]

Antonio jose
antoniojose12

(usa Fedora)

Enviado em 30/07/2017 - 16:13h

eu estou precisando substituir uns arquivos com o comando sed seria no caso isto:
http://www.favon.hu por http://www.favon.com
estou utilizando assim mas o comando volta sempre erro:
sed 's,http://www.favon.hu,http://www.favon.com/g' text.list

erro: sed: -e expression #1, char 19: unknown option to `s'

ajuda?



  


2. MELHOR RESPOSTA

Perfil removido
removido

(usa Nenhuma)

Enviado em 30/07/2017 - 16:31h

 sed -i 's/http:\/\/www.favon.hu/http:\/\/www.favon.com/' arquivo.txt 

Não precisa do 'g'.
Para separar os "conteúdos", utilize o '/'. Pelas regras do sed, o '/' serve para separar, logo, precisa-se de um contra barra antes do '/' da string.
A opção '-i' indica que ele não irá aplicar tal na saída padrão, mas num arquivo.

3. Re: Ajuda com SED

José da Silva
zenull

(usa Outra)

Enviado em 30/07/2017 - 16:26h

echo http://www.favon.hu | sed 's/www.favon.hu/www.favon.com/'

Pra mudar no arquivo:

sed -i 's/www.favon.hu/www.favon.com/' arquivo

O problema aí é com as barras após http.


4. Re: Ajuda com SED

Antonio jose
antoniojose12

(usa Fedora)

Enviado em 30/07/2017 - 16:29h

problema que no arquivo ta cheio de .hu
e eu queria mudar especificamente aquele link ali
sei que é mais facil eu mudar manualmente, mas o problema que na empresa tem 150 computadores rsrs



5. Re: Ajuda com SED [RESOLVIDO]

José da Silva
zenull

(usa Outra)

Enviado em 30/07/2017 - 16:30h

Editei aí em cima.


6. Re: Ajuda com SED [RESOLVIDO]

Ruan
ru4n

(usa Fedora)

Enviado em 30/07/2017 - 16:33h

sed 's,http://www.favon.hu,http://www.favon.com/g' text.list

erro: sed: -e expression #1, char 19: unknown option to `s'


Veja que foi usado a vírgula como separador, e no final foi usado /.
--
Talk is cheap. Show me the code - LT
Linux Counter: #596371


7. Re: Ajuda com SED [RESOLVIDO]

Patrick Costa da Silva
patrickpcs

(usa Nenhuma)

Enviado em 30/07/2017 - 19:46h

ru4n escreveu:

sed 's,http://www.favon.hu,http://www.favon.com/g' text.list

erro: sed: -e expression #1, char 19: unknown option to `s'


Veja que foi usado a vírgula como separador, e no final foi usado /.
--
Talk is cheap. Show me the code - LT
Linux Counter: #596371


Muito bem observado ru4n, acho a sua a melhor resposta.
Só complementando;
Algo muito interessante no sed é que, para não ter muito trabalho usando o carácter \ como escape o tempo todo, você pode usar o primeiro carácter posterior ao comando s do Sed como separador dos padrões a serem substituídos.


sed "sçestepadraoçporestepadraoç"

Nesse caso usei o ç como separador.
O uso da letra g depois do último separador significa global, ou seja, para substituir todas as ocorrências na linha.
Normalmente o Sed so trata a primeira ocorrência na linha e pula para a próxima.


8. Re: Ajuda com SED [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 30/07/2017 - 19:55h

patrickpcs escreveu:

ru4n escreveu:

sed 's,http://www.favon.hu,http://www.favon.com/g' text.list

erro: sed: -e expression #1, char 19: unknown option to `s'


Veja que foi usado a vírgula como separador, e no final foi usado /.
--
Talk is cheap. Show me the code - LT
Linux Counter: #596371


Muito bem observado ru4n, acho a sua a melhor resposta.
Só complementando;
Algo muito interessante no sed é que, para não ter muito trabalho usando o carácter \ como escape o tempo todo, você pode usar o primeiro carácter posterior ao comando s do Sed como separador dos padrões a serem substituídos.


sed "sçestepadraoçporestepadraoç"

Nesse caso usei o ç como separador.
O uso da letra g depois do último separador significa global, ou seja, para substituir todas as ocorrências na linha.
Normalmente o Sed so trata a primeira ocorrência na linha e pula para a próxima.

Não sabia disso, muito obrigado! Minha resposta resolveu o problema dele, mas não está 100% acurada e de acordo com a manpage, obrigado por ter corrigido!



9. Re: Ajuda com SED [RESOLVIDO]

José da Silva
zenull

(usa Outra)

Enviado em 30/07/2017 - 20:06h

patrickpcs escreveu:

ru4n escreveu:

sed 's,http://www.favon.hu,http://www.favon.com/g' text.list

erro: sed: -e expression #1, char 19: unknown option to `s'


Veja que foi usado a vírgula como separador, e no final foi usado /.
--
Talk is cheap. Show me the code - LT
Linux Counter: #596371


Muito bem observado ru4n, acho a sua a melhor resposta.
Só complementando;
Algo muito interessante no sed é que, para não ter muito trabalho usando o carácter \ como escape o tempo todo, você pode usar o primeiro carácter posterior ao comando s do Sed como separador dos padrões a serem substituídos.


sed "sçestepadraoçporestepadraoç"

Nesse caso usei o ç como separador.
O uso da letra g depois do último separador significa global, ou seja, para substituir todas as ocorrências na linha.
Normalmente o Sed so trata a primeira ocorrência na linha e pula para a próxima.


Interessante. Porém testei com ç e retornou erro: delimiter character is not a single-byte character
Já usando , como delimitador deu certo: sed 's,http://www.favon.hu,http://www.favon.com,'


10. Re: Ajuda com SED [RESOLVIDO]

Patrick Costa da Silva
patrickpcs

(usa Nenhuma)

Enviado em 30/07/2017 - 22:52h

Perdão, não testei o ç antes de postar pois estou longe do PC. Mas como a mensagem de erro reportou, deve ser por causa da complexidade do ç, acredito que qualquer outro carácter mais simples como os sem acentuações devem funcionar.
PS: ainda estou longe de um PC.




11. Re: Ajuda com SED [RESOLVIDO]

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 31/07/2017 - 01:04h

um sed um pouco mais elegante
sed -i '/favon/ s/hu/com/g' text.list 


substitui "hu" por "com" somente nas linhas que tem "favon", obviamente q se tiver mais de 1 "hu" na linha aonde tem "favon" todos vão ser substituídos


------------------------------------------| Linux User #621728 |-----------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------| Linux User #621728 |-----------------------------------------







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts