Não consigo executar um script de shell usando ex (VIM)?

1

$ ex -sc $'%s/\r$//e|x' file Funciona perfeitamente a partir do terminal, mas quando tento executá-lo com o script .sh , ele simplesmente ignora as linhas após ex .

$ rm ~/Desktop/projectautomate/finalutf81.csv    
$ rm ~/Desktop/projectautomate/finalutf8.csv

$ cat ~/Desktop/projectautomate/headersutf8.csv ~/Desktop/projectautomate/upload.csv >> ~/Desktop/projectautomate/finalutf8.csv


$ iconv -f utf-16 -t utf-8 ~/Desktop/projectautomate/finalutf8.csv -o ~/Desktop/projectautomate/finalutf81.csv -c
$ ex -sc $'%s/\r$//e|x' ~/Desktop/projectautomate/finalutf81.csv

Tudo funciona, mas não a última linha de comando. Eu estou basicamente tentando remover o CRLF (caracteres de controle de linha final) do arquivo finalutf8.csv. Algumas explicações detalhadas seriam apreciadas. Se não está claro como o inglês é a minha segunda língua, eu tentaria explicá-lo.

    
por tough 25.07.2012 / 13:57

2 respostas

1

Para que são estes $ ?

#!/bin/sh
ex -sc '%s/\r//e|x' toto.txt

parece funcionar do jeito que você quer.

    
por 25.07.2012 / 18:44
1

$'' é apenas uma coisa bash; o script de shell provavelmente está sendo executado com sh ou dash. Coloque

#!/bin/bash

na primeira linha.

    
por 25.07.2012 / 19:36