[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