문자열에 공백이 있는 경우에도 문자열에 tsort를 사용할 수 있나요?

문자열에 공백이 있는 경우에도 문자열에 tsort를 사용할 수 있나요?

coreutils 매뉴얼에 따르면

tsort는 입력을 공백으로 구분된 문자열 쌍으로 읽어 부분 정렬을 나타냅니다.

매뉴얼에 따르면 문자열에 공백이 있으면 해당 문자열과 다른 문자열에 tsort를 사용할 수 없습니다. 문자열 및 기타 문자열과 함께 tsort를 어떻게 계속 사용할 수 있나요? 감사해요.

답변1

일부 입력 문자열에 공백이 포함되어 있으면 tsort를 직접 사용할 수 없습니다.

소스 코드를 확인하면 구분 기호가 다음과 같이 하드코딩되어 있음을 알 수 있습니다.공백, 탭 및 줄 바꿈그리고 이를 변경할 수 있는 옵션도 없습니다.

단어에 공백이 포함될 수 있는 데이터 집합에서 tsort를 사용하려는 경우 데이터 집합을 전처리하고 공백을 공백이 아닌 문자(또는 공백이 아닌 문자 시퀀스)로 인코딩한 다음 tsort를 실행하고 마지막으로 게시하는 것이 좋습니다. 최종 출력 프로세스, 원래 공백으로 다시 디코딩합니다.

sed이를 사전 및 사후 처리 단계 에 사용할 수 있습니다 . 공백을 인코딩하는 데 사용하는 문자는 데이터세트에 따라 다릅니다. 다른 유효하지 않은 문자(예: #또는 @, $또는 \)가 있는 경우 해당 문자를 직접 사용할 수 있습니다. 그렇지 않으면 두 가지 문자 인코딩(예: 공백을 로 인코딩 \s)을 고려하고 따옴표 문자 자체를 인코딩하는 방법(예: \\단일 백스페이스 인코딩)을 포함할 수 있습니다.

관련 정보