Para que são estes $
?
#!/bin/sh
ex -sc '%s/\r//e|x' toto.txt
parece funcionar do jeito que você quer.
$ 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.
$''
é apenas uma coisa bash; o script de shell provavelmente está sendo executado com sh ou dash. Coloque
#!/bin/bash
na primeira linha.