R-Blogger블로그·해설한국어2026-04-27
명령줄과 R에서의 단일 인용부호 vs 이중 인용부호
단일 따옴표와 이중 따옴표: 명령줄과 R에서의 차이점 프로그램에 명령줄 인자를 전달할 때, 단일 따옴표(')와 이중 따옴표(")는 큰 차이를 만든다. 아래에서 각 규칙과 예시를 살펴보자. Shell 규칙 단일 따옴표(')는 어떤 문자도 이스케이프 할 수 없으며, 내용은 그대로 해석된다. 반면 이중 따옴표(")는 문자 이스케이프와 변수 확장을 허용한다. # 단일 따옴표 사용 printf "%s\n" '\+hello' # 출력: \+hello # 이중 따옴표 사용 printf "%s\n" "\+hello" # 출력: \+hello 두 명령 모두 같은 문자열 \+hello 를 프로그램에 전달하지만, 첫 번째는 그대로 읽고, 두 번째는 쉘이 이중 백슬래시를 단일 백슬래시로 해석한 뒤 전달한다. R 콘솔 규칙 R 콘솔에서는 언어 고유의 문자열 리터럴 구문을 다뤄야 한다. 대부분의 프로그래밍 언어와 마찬가지로 R에서도 백슬래시(\)가 이스케이프 문자로 사용된다. 따라서 콘솔에 "\." 를 입력하면 즉시 이스케이프 시퀀스로 해석돼, \. 같은 유효한 이스케이프가 없다는 경고가 표시된다. 문자열에 문자 백슬래시를 넣으려면 \\ 를 사용한다. 이는 두 번째 백슬래시를 이스케이프가 아닌 문자로 인식하도록 지시한다. # 정규식 정의 예시 myregexp = "^planet\.name$" 위 코드는 ^planet\.name$ 라는 텍스트를 담은 문자열을 만든다. 이 문자열을 정규식 함수에 전달하면 \. 시퀀스가 “문자 그대로의 점” 으로 해석되고, 이는 정규식에서 “임의의 문자” 와는 다르다. R 스크립트에 대한 명령줄 인자 R 스크립트를 실행하고 명령줄에서 파라미터를 전달할 경우(예: Rscript), 앞서 설명한 쉘 규칙이 내부 R 콘솔 규칙보다 우선한다. 아래 예시를 통해 확인해보자. # test_args.R args 0) { cat("Argument received by R:", args[1], "\n") } 터미널에서 실행하기: # 단일 따옴표 테스트 Rscript test_args.R '\+hello' # 출력: Argument received by R: \+hello # 이중 따옴표 테스트 Rscript test_args.R "\+hello" # 출력: Argument received by R: \+hello 명령줄에서 정규식을 입력해 sub() 같은 함수에 사용하고 싶다면, 위 쉘 인용 규칙을 따라야 한다. \+hello 가 R에 전달되어 실제 코드에서 “+hello” 를 문자 그대로 매칭한다. 더 깊이 있는 내용을 원한다면, Reddit에서 “double slashes in regex” 를 참고해라.
원문 URL
전체 글은 원문 페이지에서 이어서 읽을 수 있습니다.
- 작성자
- R-Blogger
- 출처
- R-Blogger
- 플랫폼
- R-Blogger
- 분류
- 블로그·해설
- 언어
- 한국어
- 발행일
- 2026-04-27