.sh 스크립트를 보고 있는데 다음 줄 중 하나가 다음과 같습니다.
tr -d '\15' < file1.txt > /testProject/files/file1.txt
이 부분은 file1.txt > /testProject/files/file1.txt
결과를 /testProject/files/file1.txt에 추가하는 것을 의미하지만 이것이 무엇을 합니까 tr -d '\15' < file1.txt
?
\15가 ASCAII 문자라는 것은 알고 있지만 그 기능이 무엇인지는 잘 모르겠습니다.
누구든지 도울 수 있다면 매우 감사하겠습니다.
답변1
명령은 세 가지 논리적 부분으로 평가될 수 있습니다.
tr -d '\15'
- 실행할 명령입니다.< file1.txt
- file1.txt가 입력으로 전달됩니다.> /testProject/files/file1.txt
- 출력은 /testProject/files/file1.txt에 기록됩니다.
Panki가 댓글에서 말했듯이,tr
맨페이지필요한 대부분의 정보가 있습니다. 이 명령은 한 세트의 문자를 다른 세트로 변환하는 데 사용됩니다. 이 -d
옵션을 사용하면 문자가 제거됩니다.
동일한 매뉴얼 페이지에서 특수하게 해석된 시퀀스 목록을 볼 수 있습니다. 첫 번째는 \NNN
8진수를 나타내는 데 사용됩니다.
마지막 질문은 무엇을 \15
의미하나요? printf
및 명령을 사용하여 볼 수 있습니다 od
.
$ printf '\15' | od -c
0000000 \r
0000001
따라서 이 명령의 최종 효과는 입력 파일에서 '\r'(캐리지 리턴) 문자를 제거하는 것입니다.
주석에서 Steeldriver가 언급했듯이 이는 일반적으로 Windows 스타일 줄 끝('\r\n')에서 Unix 스타일 줄 끝('\n')으로 변환하는 데 사용됩니다.