[FUG-BR] OT: script

Renato Botelho rbgarga em gmail.com
Quinta Novembro 27 13:03:15 BRST 2014


> On Nov 27, 2014, at 12:16, Patrick Tracanelli <eksffa at freebsdbrasil.com.br> wrote:
> 
> 
>> On 27/11/2014, at 09:28, Pedro Silva <pedro.flum at 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.

Eu não sugeri o :blank: porque no arquivo dele a primeira coluna tem nomes separados por espaços, e eles seriam trocados por ;

No fim das contas sobraram opções pra resolver o caso, e isso é sempre o mais legal :)

--
Renato Botelho



Mais detalhes sobre a lista de discussão freebsd