ý 문자를 \n으로 바꾸세요.

ý 문자를 \n으로 바꾸세요.

누군가가 나를 도와주거나 올바른 방향으로 나를 가리킬 수 있기를 바랍니다. 지금 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

작동해야 하며 이것이 해결책임을 확인했습니다.

관련 정보