Criei um arquivo do bloco de notas no Windows e copiei-o no Ubuntu. O arquivo contém algumas regras do iptables. Depois de tornar o arquivo executável usando chmod +x
e executando, ele não funcionou.
No entanto, quando eu criei um Ubuntu ( gedit arquivo ) e copiei o mesmo conteúdo do arquivo Notepad, o tornei executável e o executei, ele funcionou.
O que devo fazer para que o arquivo do Notepad seja executado no Ubuntu?
Respostas:
Windows e Linux possuem diferentes símbolos de final de linha.
Você pode instalar o
dos2unix
utilitário que o corrige:Execute da seguinte maneira:
Há também o
unix2dos
utilitário.A conversão de Windows para Linux também pode ser feita sem a instalação de nenhum software especial.
Nota: Os arquivos de entrada e saída devem ser diferentes.
Uma versão sed irá editar o arquivo "in place":
Ou escreva para outro arquivo:
fonte
dos2unix winfile.txt linuxfile.txt
tenta converter os dois arquivos. Use este comandodos2unix -n winfile.txt linuxfile.txt
No Windows, você precisa alterar o formato EOL (End of Line) no Notepad ++ para UNIX:
Dessa forma, também funcionará no Ubuntu.
fonte
O Windows usa CR + LF para quebras de linha. No Linux / Unix, você precisa de LF. Portanto, você deve substituir CR + LF por LF no seu script:
Instalar
dos2unix
E corrija seu script via
ou via
se você precisar de um arquivo de saída diferente
Mais informações aqui
a partir de
man dos2unix
fonte
Eu uso o cygwin no Windows.
Abra o arquivo com vi. Então entre
irá salvar o arquivo com caracteres de fim de linha do Unix.
fonte
Você pode usar o Vim no modo Ex:
%
selecione todas as linhass
substituto\r
retorno de carrox
salvar e fecharfonte