누군가가 나를 도와주거나 올바른 방향으로 나를 가리킬 수 있기를 바랍니다. 지금 2주 동안 찾으려고 노력 중이에요.
문제는 제가 Linux(RHEL)를 사용하고 있고 입력 스트림의 문자를 ý
.\n
나는 시도했지만 awk '{gsub(/ý/,"\n")}1'
성공 sed '$ s/ý/\\n/g'
하지 못했습니다. 또한 다음 트릭도 시도했습니다.
sed '$ s/ý/\\ /g'
운이 좋지 않습니다.
VI로 파일을 열면 다음과 같은 내용이 표시되므로 올바른 문자를 찾고 있다고 확신합니다.
DESCRIPTION : test line 1ýtest line 2ýtest line 3
자세한 내용은 ý
UniVerse 다중값 구분 기호를 참조하세요.
어떤 도움이라도 대단히 감사하겠습니다. 정말 감사합니다!
답변1
vi에 표시된 문자는 여러 가능한 인코딩(utf8, ASCII, ISO8859-1 등)의 변환일 수 있습니다. 따라서 다음을 선언하면 모호해집니다.
...VI로 파일을 열면 다음이 표시됩니다. 설명: 테스트 라인 1ý테스트 라인 2ý테스트 라인 3
명확하게 하려면 파일 내용의 16진수(또는 8진수) 덤프를 제공해야 합니다. 주문하다:
od -tx1c testfile
이와 같은 파일 덤프를 제공합니다.
파일을 덤프하기 전에 나는 이렇게 말했습니다.
"UniVerse 다중값 구분 기호"가 252(0xFC) 또는 253(0xFD)이고 ý(ISO-8859-1 문자 0xFD)가 표시되는 경우 ý가 실제로 바이트 0xFD(또는 375에서 375)라고 가정하는 것이 합리적입니다. 8진수).
당신이 확인했어요댓글에서이는 실제로 파일 내의 값입니다.
이것을 알고 다음 명령을 내립니다.
sed 's/\xfd/\n/g' testfile
작동해야 하며 이것이 해결책임을 확인했습니다.