[FUG-BR] OT: script

Patrick Tracanelli eksffa em freebsdbrasil.com.br
Quinta Novembro 27 12:16:03 BRST 2014


> On 27/11/2014, at 09:28, Pedro Silva <pedro.flum em gmail.com> wrote:
> 
> O que achei interessante foi o "sed" do Linux funcionar e o "sed" do
> FreeBSD não funcionar de jeito nenhum.
> 
> No Linux (Fedora 20) o comando sed 's/\t/;/g' file.txt teve o efeito que eu
> esperava; no FreeBSD não acontece nada.
> 
> Tirei o CRLF com o comando tr -d '\15' < file.txt > file-1.txt e mesmo
> assim não funcionou no sed do FreeBSD
> 
> Com o AWK também funcionou certinho.
> 
> Obrigado a todos pelas dicas.
> 
> Se alguém descobrir porque o sed do FreeBSD 9.1 não funciona, agradeceria.
> 
> Obrigado

Não é que não funciona, é que o que você está esperando é o comportamento do gsed (gnu sed, tem no ports). 

No BSD Sed voce pode fazer:

sed ’s/	/;/g’ file.txt
sed 's/[[:blank:]]/;/g’ file.txt

Entendeu a primeira opção? É um TAB literal (pressione tab). 

Veja:
% cat teste.txt
uia	isso
e	isso

% sed ’s/	/;/g' teste.txt
uia;isso
e;isso

% sed 's/[[:blank:]]/;/g' teste.txt
uia;isso
e;isso

No FreeBSD voce simplesmente da um tab. No OS X voce da Ctrl+V depois TAB e vai imprimir o TAB literal. Mas pro que voce quer [[:blank:]] talvez atenda como acima.

Portanto nao é que n funciona, é apenas diferente. Como bash é diferente do sh e vim é diferente do vi, gsed é diferente do sed, mas no Linux enfiam tudo com o mesmo nome. Até o ls no Linux é outro (gnuls).




> 
> Em 26 de novembro de 2014 08:35, Rodrigo Mosconi <freebsd em mosconi.mat.br>
> escreveu:
> 
>> Em 25 de novembro de 2014 17:00, Pedro Silva <pedro.flum em gmail.com>
>> escreveu:
>> 
>>> Desculpem o OT, mas é um coisa simples que não estou conseguindo
>> resolver:
>>> estou tentando inserir, via "sed", delimitadores em um arquivo texto
>> (link
>>> abaixo), mas não estou conseguindo.
>>> 
>>> tentativas:
>>> 
>>> sed 's/ /;/g' fx.txt
>>> sed 's/\t/;/g' fx.txt
>>> sed 's/\x0/;/g' fx.txt
>>> 
>> 
>> sed -e 's/.../.../g' arquivo.txt
>> 
>> 
>> 
>>> 
>>> Nenhum desses comando consegue inserir o ";" entre as colunas; como
>>> descubro os caracteres entre as colunas?
>>> 
>>> http://campuscolinas.org/ff.txt.gz
>>> 
>>> Quem puder dar uma olhada, agradeço.
>>> 
>>> --
>>> Pedro Silva
>>> Fedora User
>>> -------------------------
>>> Histórico: http://www.fug.com.br/historico/html/freebsd/
>>> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
>>> 
>> -------------------------
>> Histórico: http://www.fug.com.br/historico/html/freebsd/
>> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
>> 
> 
> 
> 
> -- 
> Pedro Silva
> Fedora User
> -------------------------
> Histórico: http://www.fug.com.br/historico/html/freebsd/
> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd

--
Patrick Tracanelli

FreeBSD Brasil LTDA.
Tel.: (31) 3516-0800
316601 em sip.freebsdbrasil.com.br
http://www.freebsdbrasil.com.br
"Long live Hanin Elias, Kim Deal!"



Mais detalhes sobre a lista de discussão freebsd