처음 이것이 나를 물었을 때,나는 PDF 에서 약관 블록을 지원 회신으로 복사하고있었습니다. PDF 에서 괜찮아 보였습니다. 편집기에 착륙하는 순간 그것은 계단으로 바뀌었고,모든 선은 페이지 중간에 새로운 행으로 스냅되었습니다. PDF 가 모든 시각적 인 선의 끝으로 열심히 돌아 왔기 때문에 손으로 고치는 것은 개행 문자를 삭제하고,공간을 추가하고,그것을 40 번 반복하는 것을 의미했습니다. 나는 Toolz.dev 에 충분한 도구를 구축하여 작업이 자동화 할 가치가있는시기를 알 수 있었으며,이 하나는 수년간 조용히 시간을 낭비했습니다. 그래서 나는 줄바꿈 도구 제거그리고 이 가이드는 문제가 존재하는 이유와 문제를 올바르게 청소하는 방법에 대해 배운 모든 것입니다.
TL;DR: PDF,이메일 및 터미널에서 복사한 텍스트는 각 단락의 끝 부분에만 표시되는 것이 아니라 모든 표시 줄 끝에 줄 바꿈이 있는 경우가 많습니다. 붙여넣으면 끊어지고 너덜너덜한 줄이 남습니다. The 줄바꿈 도구 제거 그 개행 문자를 삭제하고 선택한 구분 기호로 텍스트를 조인하고 단락 인식 모드는 단락 사이의 빈 줄을 유지하여 결과가 하나의 거대한 실행 라인이 아닌 산문으로 읽혀집니다. 모든 것이 브라우저에서 실행되므로 아무 것도 업로드되지 않습니다.
복사된 텍스트가 줄 바꿈으로 가득 찬 이유는 무엇입니까?
짧은 대답은 줄 바꿈과 단락 바꿈은 서로 다른 두 가지이며 많은 소프트웨어가 이를 혼란스럽게 한다는 것입니다.
워드프로세서나 브라우저를 입력하면 단락 끝에서만 Enter 키를 누릅니다. 문단은 자동으로 단락 안으로 감겨서 보이는 시각적 선은 창의 너비에 따라 즉석에서 결정됩니다. 단락 안에는 줄바꿈 문자가 전혀 없습니다. 이를 소프트 래핑이라고 하며,창 크기를 조정할 때 동일한 단락이 깔끔하게 리플로우되는 이유입니다.
다른 많은 출처는 그 반대입니다. PDF 는 모든 줄의 위치를 저장하므로 텍스트를 복사 할 때 추출기는 종종 페이지에서 보는 각 줄의 끝에 실제 개행 문자를 넣습니다. 일반 텍스트 이메일은 역사적으로 모든 줄에 하드 리턴으로 72 또는 76 열로 감싸 져 웹보다 앞서 여전히 메일 링리스트와 인용 된 답장에 표시되는 규칙입니다. 코드 주석,로그 파일 및 고정 너비 터미널에 인쇄 된 모든 것이 동일하게 수행됩니다. 이 모든 것에서 개행은 생각의 끝을 표시하는 것이 아니라 우연히 그렇게 넓은 물리적 줄의 끝을 표시하는 것입니다.
그것을 소프트 래핑을 하는 곳에 붙여넣으면 두 아이디어가 충돌합니다. 편집기는 이미 텍스트를 딱 맞게 감싸고,이제 가장자리에 도달하기 전에 줄을 짧게 자르는 여분의 하드 리턴이 있습니다. 그 결과 계단: 이상한 곳에서 끊어지고,리플로우를 거부하고,복사된 것을 제외한 모든 창 크기에서 깨진 것처럼 보이는 선이 나타납니다.
줄 바꿈을 제거하는 것은 무엇을합니까?
줄 바꿈을 제거한다는 것은 해당 줄 바꿈 문자를 삭제하고 단어가 다시 연속 텍스트로 흐르도록 조각을 다시 연결하는 것을 의미합니다. 유일한 실제 결정은 각 줄 바꿈이 있던 간격에 무엇을 넣을 것인가입니다.
대부분의 경우 단일 공백을 원합니다. 왜냐하면 개행은 문장이 일반적으로 가질 수있는 두 단어 사이의 공간을 대신하기 때문입니다. 때로는 긴 숫자 나 코드 토큰이 두 줄로 분할되어 간격없이 다시 결합해야하는 경우와 같이 전혀 원하지 않습니다. 그리고 때로는 쉼표 나 다른 구분 기호를 원합니다. 왜냐하면 줄은 실제로 목록이었고 한 행에 쉼표로 구분 된 값으로 표시하기를 원하기 때문입니다. 이 도구는이 모든 것,그리고 다른 것에 대한 사용자 정의 필드를 제공합니다.
알만한 가치가 있는 문자가 하나 더 있습니다. Windows 는 CRLF 로 작성된 캐리지 리턴과 라인 피드로 두 개의 문자로 라인을 종료합니다. Unix 및 최신 macOS 는 단일 라인 피드인 LF 를 사용합니다. 매우 오래된 Mac 소프트웨어는 고독한 캐리지 리턴인 CR 을 사용했습니다. 다른 소스의 텍스트를 혼합하면 세 가지 모두의 너덜너덜한 조합으로 끝날 수 있으며,그 중 하나만 찾는 순진한 찾기 및 교체는 다른 것을 남겨 둡니다. 줄 바꿈 제거 도구는 세 가지를 모두 먼저 정규화하므로 텍스트가 어디서 왔는지는 중요하지 않으며 모든 줄 끝은 동일한 방식으로 처리됩니다.
줄 바꿈은 제거하되 단락은 어떻게 유지합니까?
이것은 도구를 무딘 도구에서 유용한 도구로 바꾸는 기능이므로 이해할 가치가 있습니다.
단순히 문서의 모든 개행 문단을 삭제하면 하나의 엄청난 문단이 나옵니다. 모든 문장은 깨지지 않는 하나의 줄로 함께 실행되고 텍스트를 읽을 수 있게 만든 구조는 사라졌습니다. 그것은 때때로 당신이 원하는 것이지만 일반적으로 그렇지 않습니다. 당신이 원하는 것은 문단 사이의 고의적인 끊김을 유지하면서 각 문단 내부의 우발적인 줄 끊김을 제거하는 것입니다.
도구는 빈 줄을 보면서 둘을 구별합니다. 하나의 개행은 단락 내부의 우발적 인 중단으로 처리되어 제거됩니다. 두 개의 개행이 연속으로있는 빈 줄은 실제 단락 경계로 취급되어 보관됩니다. 그래서 이렇게 깨진 문서:
The quick brown fox
jumps over the lazy dog.
A second paragraph
follows after a blank line.
긴 한 줄이 아닌,그 사이에 빈 줄이 있는 깨끗한 두 단락으로 나옵니다. 이것은 정확히 PDF 나 포장된 이메일에서 복사한 텍스트의 모양으로,각 단락은 내부적으로 깨져 있지만 단락은 빈 줄로 구분되어 있습니다. 기본값인 keep-paragraph-breaks 옵션을 켜두면 도구는 더 이상 만지작거리지 않고 올바른 작업을 수행합니다.
한 줄에 있는 모든 것을 진정으로 원할 때 해당 옵션을 끄십시오. 그런 다음 전체 입력의 모든 개행은 선택한 구분 기호로 대체됩니다. 이는 값 열을 단일 쉼표로 구분된 행으로 바꾸는 방법입니다.
어떤 구분자를 선택해야 하나요?
구분 기호는 제거된 각 줄 바꿈을 대체하는 문자열입니다. 올바른 선택은 줄이 나타내는 내용에 따라 달라집니다. 다음은 동일한 3 줄 입력에서 공통 옵션이 어떻게 동작하는지입니다 apple, banana, cherry:
| 분리기 | 결과 | 때 사용합니다 |
|---|---|---|
| 스페이스 | apple banana cherry |
줄은 산문으로 읽어야 하는 단어 또는 문장 조각입니다 |
| 아무것도 | applebananacherry |
단일 토큰은 여러 줄로 분할되었으며 간격 없이 다시 결합되어야 합니다 |
| 콤마 | apple, banana, cherry |
선은 쉼표로 구분된 값으로 원하는 목록입니다 |
| 세미콜론 | apple; banana; cherry |
데이터의 쉼표와 충돌하지 않는 목록 구분 기호가 필요합니다 |
| 파이프 | apple | banana | cherry |
Markdown 테이블 행 또는 구분된 레코드를 구축하고 있습니다 |
| 사용자 정의 | 당신이 입력하는 것이 무엇이든 | 와 같은 특정 조이너가 필요합니다 - 또는 탭 |
공간은 일반 산문에 대한 다른 어떤 선택보다 훨씬 더 자주 적합하기 때문에 기본값입니다. 예를 들어 스프레드시트에서 복사된 열을 단일 행으로 붙여넣는 등 데이터를 읽는 대신 데이터 모양을 변경할 때 목록 구분 기호가 자체적으로 나타납니다. 쿼리에 붙여넣을 수 있습니다.
정리 옵션은 무엇을 합니까?
두 개의 추가 토글은 조인 자체 이상의 출력을 정리하며 거의 항상 도움이 되기 때문에 둘 다 기본적으로 켜져 있습니다.
Trim 은 선들이 결합되기 전에 각 선의 시작과 끝의 공백을 제거합니다. 복사된 텍스트는 자주 볼 수 없는 후행 공백을 전달하고,한 번 선이 더 이상 자신의 선이 아닌 경우 유지하고 싶지 않은 선의 시작 부분에 들여쓰기를 트리밍하지 않으면 그 길 잃은 공백은 결합에서 살아남아 결합된 텍스트의 중간에 어색한 간격으로 나타납니다.
축소 공백은 한 단계 더 나아가 두 개 이상의 공백이나 탭의 실행을 단일 공백으로 줄입니다. 일단 선이 결합되면 후행 공백이 선행 공백과 만나는 이중 공백으로 끝나기 쉽거나 원본 텍스트가 공백을 사용하여 무언가를 축소하면 산문이 기대하는 단일 간격이 제공됩니다. 중요한 것은 이것이 공백과 탭에만 닿고 단락을 구분하는 개행은 결코 없으므로 단락 인식 결합을 취소하지 않는다는 것입니다.
입력에 단락 간격이 되고 싶지 않은 빈 줄이 있는 경우 기본적으로 꺼짐인 빈 줄 제거 옵션도 있습니다. 입력한 상태에서 빈 줄이 보존되지 않고 삭제되므로 이중 간격 내보내기를 정리하는 데 유용합니다.
브라우저에서 이렇게 하는 것은 안전한가요?
예,그리고 이것은 Toolz.dev 뒤에있는 전체 디자인 철학이기 때문에 제가 신경 쓰는 점입니다. 줄 바꿈 제거 도구는 JavaScript 를 사용하여 브라우저에서 완전히 실행됩니다. 붙여 넣기 한 텍스트는보고있는 페이지의 메모리에서 처리되며 서버에 업로드되지 않습니다. 계정도없고 로깅도없고 콘텐츠를 어디에도 전달하는 네트워크 요청도 없습니다.
처음 나타나는 것보다 더 중요합니다. 사람들이 가장 자주 리플로우해야 하는 텍스트는 비공개 어딘가에서 복사한 텍스트입니다: PDF 의 계약서,내부 이메일,고객 메시지,코드 블록. 개행 문자를 제거하기 위해 원격 서버로 보내는 것은 그런 사소한 작업에 대한 터무니없는 개인 정보 보호 거래입니다. 작업이 로컬이기 때문에 업로드 제한도 없으므로 매우 큰 문서는 짧은 문서만큼 빠르게 리플로우되며 페이지가로드 된 후 연결이 끊어지더라도 도구가 계속 작동합니다. 클라이언트 측 처리가 이와 같은 유틸리티에 적합한 기본값 인 이유에 대한 더 긴 인수를 원한다면 에 썼습니다 데이터 개인 정보 보호 및 온라인 도구 가이드.
이것이 find 와 replace 와 어떻게 다른가?
당신은 물론,찾기 및 교체와 모든 편집기에서 직접이 작업을 수행 할 수 있으며,일회성으로는 괜찮습니다. 내가 여전히 전용 도구에 도달 한 이유는 수동 찾기 및 교체가 잘못되는 세 가지로 귀결됩니다.
첫째,문단 문제. 공백으로 개행 문자를 일반 대체하면 모든 것이 한 줄로 평평해집니다. 문단 경계에서 문단 내 중단을 구분할 수 없기 때문입니다. 문단을 손으로 보존하려면 2 단계 댄스를 해야 합니다: 먼저 이중 개행 문자를 자리 표시자로 바꾼 다음 단일 개행 문자를 공백으로 바꾼 다음 이중 개행 문자를 다시 놓습니다. 그것은 까다롭고 잘못되기 쉽습니다.
둘째, 혼합 선 끝. 텍스트에 CRLF, LF 및 CR이 혼합되어 있는 경우 단일 찾기 및 바꾸기 패턴이 일부 패턴을 놓치고 낙오자를 사냥하게 됩니다. 도구는 세 가지 모두를 정상으로 만듭니다.
셋째,공백 정리. 결합 후 일반적으로 이중 공간을 축소하고 끝을 다듬고 싶습니다. 이는 올바른 순서로 수행된 패스를 한두 번 더 교체하는 것입니다. 도구는 눈에 보이는 토글을 사용하여 모든 작업을 단일 작업으로 접어 넣으므로 각 작업을 다시 수행하지 않고도 정확하게 확인하고 조정할 수 있습니다.
이 중 어느 것도 손으로 불가능하지 않습니다. 그것은 단지 느리고 오류가 발생하기 쉽기 때문에 특수 목적의 도구가 필요한 두 번째 또는 세 번째 시간에 그 자체로 비용을 지불합니다. 같은 논리로 인해 나는 작은 텍스트 유틸리티의 전체 선반을 유지합니다 중복 라인 제거기 목록을 추론하기 위해 라인 분류기 매번 스크래치 스크립트에 도달하는 대신 하나를 주문합니다.
언제 모든 줄 바꿈을 제거하고 싶습니까?
모든 것을 한 줄로 축소하는 실제 사례가 있으며, 단락 옵션을 언제 꺼야 하는지 알 수 있도록 불러올 가치가 있습니다.
가장 명확한 것은 데이터 재형성입니다. 스프레드시트에서 단일 열을 복사하면 한 줄에 하나의 값으로 도착합니다. SQL 에 드롭하기 위해 쉼표로 구분된 목록으로 저장하기를 원합니다 IN (...) 절 또는 config 배열. keep-paragraph-breaks 를 끄고,쉼표 구분자를 선택하면,행이 있습니다. 파이프 구분자로 Markdown 테이블 행을 빌드하거나,쿼리 문자열을 어셈블링하는 경우에도 마찬가지입니다.
또 다른 하나는 래핑된 토큰에 다시 합류하는 것입니다. 긴 URL,base64 blob 또는 이메일의 줄에 걸쳐 분할된 API 키는 구분 기호가 없는 하나의 연속 문자열이 되어야 합니다. 단락 나누기를 끄고 구분 기호로 아무것도 선택하지 않으면 조각이 다시 단일 토큰으로 융합됩니다.
경험 법칙은 간단합니다. 사람이 읽을 수 있도록 산문을 정리하는 경우 단락을 계속 켜두십시오. 텍스트를 기계가 읽을 수 있는 단일 값으로 재구성하는 경우 해당 항목을 끄십시오. 동일한 입력에서 두 가지 사이를 전환할 수 있고 진행하면서 결과 업데이트를 볼 수 있다는 것이 두 가지 동작을 두 가지가 아닌 하나의 도구로 만든 이유입니다. 그리고 정리된 텍스트가 어딘가로 향하면 사이트의 더 넓은 키트를 편집할 것입니다 케이스 컨버터 에 단어 카운터는, 이 것이 떨어져 떠나는 곳에 줍는다.일상 원본과 부호 도우미의 더 넓은 세트를 위해, the 개발자 생산성 도구 가이드 는 좋은 지도이고, 코딩 도구 가이드 서식 측면을 다룹니다.
자주 묻는 질문
텍스트에서 줄 바꿈을 어떻게 제거합니까?
줄 바꿈 제거 도구에 텍스트를 붙여넣고 기본 설정을 유지합니다. 단락 안의 모든 줄 바꿈을 단일 공백으로 대체하고 결합된 결과를 즉시 표시하며,이 결과를 복사할 수 있습니다. 브라우저에서 모든 일이 발생합니다.
줄 바꿈을 제거할 때 단락을 어떻게 유지합니까?
기본값인 단락 끊기 유지 옵션을 켜두십시오. 그런 다음 도구는 각 단락 내부의 한 줄 끊기만 평평하게 하고 단락 사이에 빈 줄을 하나씩 유지하므로 텍스트 구조가 한 줄로 축소되는 대신 보존됩니다.
모든 줄을 한 줄로 합칠 수 있나요?
예. 단락 끊김 유지 옵션을 끄면 전체 입력이 하나의 연속적인 줄로 축소됩니다. 이는 값 열을 단일 쉼표로 구분된 행으로 바꾸거나 줄에 분할된 토큰을 다시 결합하는 데 유용합니다.
줄 바꿈과 마차 반납의 차이점은 무엇입니까?
줄 바꿈은 Unix 및 최신 Mac 시스템에서 사용되는 개행 문자입니다. 캐리지 반환은 이전 Mac 엔딩이며 Windows는 둘 다 CRLF로 함께 사용합니다. 이 도구는 세 가지를 모두 정규화하므로 소스 텍스트는 출처에 관계없이 동일한 방식으로 결합됩니다.
줄 바꿈을 공백 대신 쉼표로 바꾸려면 어떻게 해야 합니까?
쉼표 구분 기호를 선택합니다. 제거된 각 줄 바꿈은 쉼표와 공백으로 대체되어 줄 목록을 쉼표로 구분된 목록으로 바꿉니다. 사용자 지정 옵션을 사용하면 탭이나 대시 등 원하는 모든 조이너를 사용할 수 있습니다.
왜 출력은 여전히 두 배의 공백을 가지고 있습니까?
이는 결합되기 전에 선이 공백에서 이미 끝난 경우에 발생합니다. 공백 또는 탭의 실행을 단일 공백으로 줄이려면 축소-공백 옵션을 켜고,선 끝에 있는 공백을 먼저 제거하려면 트림을 켭니다. 둘 다 기본적으로 켜져 있습니다.
줄 바꿈을 제거하면 내 텍스트의 단어가 변경됩니까?
아니요. 도구는 개행 문자만 제거하고,물어보면 공백을 정리합니다. 단어,구두점, 순서는 그대로 두기 때문에 텍스트의 의미는 변하지 않습니다.
여기에 개인 텍스트를 붙여넣는 것이 안전한가요?
예. 모든 처리는 전적으로 JavaScript 를 사용하는 브라우저에서 이루어집니다. 텍스트는 업로드되거나 저장되지 않으며,페이지가 로드된 후에도 도구는 네트워크 연결 없이 계속 작동하므로 계약,이메일 및 코드에 안전합니다.



