Ubuntu에서 메모장 (Windows)에서 생성 된 스크립트 실행


14

Windows에서 메모장 파일을 만들어 우분투에 복사했습니다. 이 파일에는 일부 iptables 규칙이 포함되어 있습니다. 파일을 사용 chmod +x하여 실행 파일을 만든 후에 는 작동하지 않습니다.

그러나 우분투 ( gedit ) 파일을 만들고 메모장 파일에서 동일한 내용을 복사하여 실행 가능하게 만들고 실행했을 때 작동했습니다.

메모장 파일을 Ubuntu에서 실행하려면 어떻게해야합니까?


답변:


20

Windows와 Linux에는 줄 끝 기호가 다릅니다.

dos2unix이를 해결 하는 유틸리티를 설치할 수 있습니다 .

sudo apt-get install dos2unix

이 방법으로 실행하십시오.

dos2unix -n winfile.txt linuxfile.txt

도 있습니다 unix2dos유틸리티.

특별한 소프트웨어를 설치하지 않고도 Windows에서 Linux로 변환 할 수도 있습니다.

 tr -d '\r' < winfile.txt > linuxfile.txt

참고 : 입력 및 출력 파일이 달라야합니다.

나오지 버전은 "장소"파일을 편집합니다 :

 sed  -i 's/\r//g' file.txt

또는 다른 파일에 쓰십시오.

 sed 's/\r//g' winfile.txt > linuxfile.txt

당신의 명령이 잘못되었습니다. dos2unix winfile.txt linuxfile.txt두 파일을 모두 변환하려고합니다. 이 명령을 사용하십시오dos2unix -n winfile.txt linuxfile.txt
AB

@AB 고정. 네 말이 맞아 그들은 입력 매개 변수를 변경했습니다. 나는 오랫동안 그것을 사용하지 않았다.
Pilot6

어쨌든, 정답 +1
AB

대단히 감사합니다. Notepad ++가없고 새 패키지 (dos2unix)를 설치하고 싶지 않기 때문에 "tr"명령을 선호했습니다. 나는 그것을 시도했고 효과가 있었다. 그러나 소스 및 대상 파일은 달라야합니다.
Albert

@Albert 답변에 추가되었습니다. 파일 이름을 유지하는 다른 방법을 사용할 수 있지만 IMHO의 노력에는 가치가 없습니다. 그리고 파일을 섞지 않도록 다른 이름을 사용하는 것이 좋습니다.
Pilot6

6

Windows에서는 메모장 ++의 EOL (End of Line) 형식을 UNIX로 변경해야합니다.

여기에 이미지 설명을 입력하십시오

그렇게하면 우분투에서도 작동합니다.


1
그렇게하면 Ubuntu / Linux 에서만 작동 합니다 . Notepad ++와 같은 특수 고급 편집기는 줄 끝 유형을 인식하고 올바르게 표시 할 수 있지만 일반적인 Windows 메모장 등은 그렇지 않습니다.
바이트 사령관

@ByteCommander YES이지만 우분투에서 실행하려고합니다.

1
물론입니다. 그러므로 나는 알고 찬성했습니다. 나는이 사실을 분명히하고 싶었으므로 파일이 이제 정상적인 메모장에서 이상하게 보일 때 아무도 놀라지 않을 것입니다.
바이트 사령관

2
OP가 타사 프로그램 Notepad ++가 아닌 Windows 의 기본 제공 프로그램 메모장 을 참조한다고 생각합니다 . 이 목적으로 Nodepad ++를 Windows에 설치해야한다고 제안하는 경우 대답에서보다 명확하게 설명 할 수 있습니까? 지금 당장은 혼란 스럽습니다.
Peter Mortensen

@PeterMortensen 나는 그의 질문을 다시 읽었고, 나는 오해하지 않았다고 생각하며 내 대답은 그의 문제에 대한 좋은 해결책 중 하나입니다.

2

Windows는 줄 바꿈에 CR + LF를 사용합니다. Linux / Unix에서는 LF가 필요합니다. 따라서 스크립트에서 CR + LF를 LF로 바꿔야합니다.

설치 dos2unix

sudo apt-get install dos2unix

다음을 통해 스크립트를 수정하십시오.

dos2unix <your_script_file>

또는 통해

dos2unix -n <your_script_file> <out_file>

다른 출력 파일이 필요한 경우

더 자세한 정보는 여기


...에서 man dos2unix

NAME
       dos2unix - DOS/Mac to Unix and vice versa text file format converter

SYNOPSIS
           dos2unix [options] [FILE ...] [-n INFILE OUTFILE ...]
           unix2dos [options] [FILE ...] [-n INFILE OUTFILE ...]

1

Windows에서 cygwin을 사용합니다.
vi로 파일을 엽니 다. 그런 다음 입력

:set ff=unix<enter> followed by 
:wq<enter> 

Unix 줄 끝 문자로 파일을 저장합니다.


0

Ex 모드에서 Vim을 사용할 수 있습니다 :

ex -bsc '%s/\r//|x' file
  1. % 모든 줄을 선택하십시오

  2. s 대용품

  3. \r 캐리지 리턴

  4. x 저장하고 닫습니다

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.