sed는 한 줄의 단어 사이의 공백을 제거합니다.

sed는 한 줄의 단어 사이의 공백을 제거합니다.

모두 대문자로 된 일부 일반 영어 단어가 포함된 텍스트 파일이 있습니다. 불행하게도 이 단어들은 모두 첫 글자와 다음 글자 사이에 공백이 있어서 용납할 수 없습니다. 나는 sed이러한 이벤트와 일치하는 표현식을 작성해 보았고 sed 's/[A-Z] [A-Z][A-Z]*/작동했습니다. 그러나 교체부분 작성에는 성공하지 못했습니다.

답변1

다음과 같이 단어의 두 부분을 그룹화하여 교체 시 역참조로 사용해야 합니다.

sed -e 's/\([A-Z]\) \([A-Z]\+\)/\1\2/g'

또한 표시하기 위해 *의 사용을 변경했습니다.+1개 이상대신 이전 문자가 나타납니다.0 이상, 몇 단계를 저장하세요.

또한, "나"라는 단어가 단독으로 발견되면 전체 표현에 문제가 있을 수 있습니다. "나"가 그 자체의 단어인지 아니면 다음 단어에 연결되어야 하는지를 알기 위해 일치시킬 수 있는 다른 것이 있습니까? "A"와 다른 한 글자 단어는 어떻습니까?

"ABIRD" 또는 "IWENT"와 같은 대체 단어로 인해 발생한 오류를 확인하는 데 도움이 되도록 이 간단한 텍스트 해킹과 일종의 맞춤법 검사를 결합하는 것이 좋습니다. 정규식을 아무리 조작해도 설명처럼 깨진 텍스트가 많은 경우 완벽한 결과를 얻을 수 없지만 정규식으로 대충 정리한 후에는 계속 진행할 수 있습니다. 맞춤법 검사기(실행할 수도 있음)와 같은 보다 세부적인 방법을 사용하세요. 명령줄에서 자동으로 실행하여 문제를 정리합니다. 마지막으로 수동 교정을 요청하세요!

관련 정보