정렬 매뉴얼 페이지에서 -t는 필드 구분 기호를 지정하는 데 사용됩니다. 그런데 그 형식이 무엇을 의미하는지 모르시나요 -t$'\t'
?
답변1
Bash ANSI-C 인용. 이와 같이 문자열을 래핑하면 $'string'
C 문자열과 동일한 규칙으로 확장됩니다. 귀하의 경우에는 $'t'
그냥 이 되지만 't'
, 그렇다면 $'\t'
탭 문자가 됩니다. 이는 큰따옴표를 사용하는 것과 약간 다릅니다. "string"
큰따옴표는 bash 대체(예: 변수 확장)를 허용하기 때문 입니다.
답변2
-t 옵션 뒤의 '$'는 표현에 7비트 이상을 사용하는 문자를 지정하는 데 사용됩니다. 예를 들어 개행의 경우 '\n', 탭의 경우 '\t'입니다. 다음과 같이 하면:
sort -t '\t'
Sort는 문자 그대로 '\'와 't'를 읽으려고 하기 때문에 너무 많은 문자를 사용하고 있다는 오류를 인쇄합니다.
따라서 귀하의 예에서는 백슬래시가 생략되었습니다.
예를 들어 cut 명령과 동일합니다.
cut -d$'\t'