통합검색

Linux

[centOS] CentOS 7 에서 여러 파일 동시에 개행처리 '\n' 으로 변경 (feat. vscode 개행 설정)

  • 2023.02.23 00:46:46


윈도우, mac, 리눅스는 vscode 나 에디트플러스 같은 IDE 등에서 코드를 작성하는 경우
개행(줄바꿈) 처리 방식이 다르다.
눈에 보이지 않지만, 라인의 끝(EOL)에는 각 os마다의 개행 코드가 들어간다.

윈도우 = \r\n
mac = \r
리눅스 = \n

만약, 하나의 파일에 대해 윈도우와 mac을 왔다갔다 하며 코딩을 진행 했다면
두가지의 개행처리가 혼재되는 경우 vscode 등에서 줄바꿈이 두번 되거나, 컴파일이 안되는 등 문제가 발생할 수 있다.
(문제가 되는 파일을 리눅스에서 vi로 열어보면 라인 끝에 ^M 이 비정상적으로 붙는 것을 확인할 수 있다.) 
때문에, os를 혼용하며 코딩을 하더라도 개행처리가 한가지로 통일 되도록 해야 하는데,
호환성을 위해 리눅스 (\n) 기준으로 모두 통일시켜 작업하는 것이 좋다.



[!]개행처리 오류가 발생한 파일들을 일괄적으로 '\n' 으로 변환하기[/!]
 
# find {폴더명} \( -name ".htaccess" -o -name "*.php" -o -name "*.html" -o -name "*.sql" -o -name "*.css" -o -name "*.js" -o -name "*.xml" -o -name "*.txt" -o -name "LEADME" -o -name "LICENSE" \) -type f -exec sed -i 's/\r//g' {} +

위 명령어를 리눅스에서 실행한다.
특정 폴더 내에서
.php / .html / .sql / .css / .js / .xml / .txt / LEADME / LICENSE
파일에 대해서 코드상의 개행을 '\n'으로 바꾼다. 쉽게 보면 윈도우 개행이 발견되면 '/r' 을 지워 리눅스 개행으로 바꾸는 것이다.



[!]vscode의 개행처리를 '\n'으로 변경[/!]

다시는 개행처리가 뒤섞이는 일이 없도록 vscode의 개행처리 설정을 변경한다. (\n 으로 통일.)