Uinx/Linux: ^M 개행 문자 삭제하는 방법

리눅스에서 간혹 ^M 개행 문자를 제거하고 싶을 때가 있습니다.
리눅스에서 Ctrl + V + M 클릭하면 위와 같은 문자가 표시되며 이렇게 입력해야 위의 문자를 찾을 수 있습니다.
키보드로 ^M 입력하면 단순 텍스트로 인식하여 원하는 결과를 얻을 수 없습니다.
그런데 스크립트를 작성한다면 오해의 소지도 있고 리눅스가 아닌 환경에서 잘못된 결과가 발생할 수 있습니다.
그럴 땐 ^M 대신 \015를 사용하세요.
그럼 이제 예제를 확인해보세요.
(참고: dos2unix가 설치되어 있다면 사용하시고 아래 예제는 설치하지 않고 치환하는 방법을 소개합니다.)

샘플

cat -v file.log
abcd^M
bcde^M
cdef^M
defg^M

1. tr

# 변경 방법 1
tr -d '^M' < file.log
# 변경 방법 2
tr -d '\015' < file.log

# 변경된 내용 저장
tr -d '\015' < file.log > file.tr.log

2. sed

# 변경 방법 1
sed 's/^M//g' file.log
# 변경 방법 2
sed 's/\015//g' file.log

# 변경된 내용 저장(현재 파일 변경)
sed -i 's/^M//g' file.log

3. awk

# 변경 방법 1
awk 'sub(/^M/,"");1' file.log
# 변경 방법 2
awk 'sub(/\015/,"");' file.log

# 변경된 내용 저장
awk 'sub(/\015/,"");' file.log > file.awk.log

4. perl

# 변경 방법 1
perl -p -e 's/^M//g' file.log
# 변경 방법 2
perl -p -e 's/\015//g' file.log

# 변경된 내용 저장(현재 파일 변경)
perl -pi -e 's/\015//g' file.log

5. vi

# 변경 방법 1
:%s/^M//
# 변경 방법 2
:%s/\015//
# 변경 방법 3 - 파일 포멧 변경 > 저장 > 다시 파일 열기 > 변경됨(ff: File Format)
:set ff=unix
:wq

함께보기