初めてこれに噛まれたとき、私はPDFからサポート返信に利用規約のブロックをコピーしていました PDFでは問題なく見えました エディターに着陸した瞬間、それは階段になり、すべての行がページの途中で新しい行にスナップしました PDFがすべての視覚的な行の最後にハードリターンを焼いたので、手作業で修正することは、改行を削除し、スペースを追加し、それを40 回繰り返すことを意味しました Toolz.devで、ジョブを自動化する価値があるときを知るのに十分なツールを構築しましたが、これは何年も静かに時間を無駄にしていましたので、を構築しました 改行 ツール 削除、そしてこのガイドは、なぜ問題が存在するのか、そしてそれを適切に掃除する方法について私が学んだすべてです。
tl;dr: PDFやメールや端末からコピーされたテキストは 各段落の最後だけではなく 全ての表示行の最後に改行があることがよくあります 貼り付けると 壊れたぼろぼろの行が残ります The 改行 ツール 削除 それらの改行を削除し、選択した区切り文字でテキストを結合し、その段落認識モードは段落間の空白行を保持するため、結果は 1 つの巨大な実行行ではなく散文として読み取られます。すべてブラウザで実行されるため、何もアップロードされません。
コピーしたテキストが改行だらけなのはなぜですか?
簡単に言うと、改行と段落の区切りは別物であり、多くのソフトウェアがそれらを混同しているということです。
ワープロやブラウザを入力すると、段落の最後にのみenterを押します 段落の中でテキストが自動的に折り返されるため、表示される視覚的な線はウィンドウの幅によってその場で決定されます 段落の中に改行文字がまったくないことをソフトラッピングと呼び、ウィンドウのサイズを変更するときに同じ段落がきれいにリフローするのはこのためです。
他の多くのソースはその逆を行います PDFは全ての行の位置を格納するので テキストをコピーアウトすると 抽出器はしばしば ページ上で見る各行の末尾に 本物の改行文字を入れます 平文メールは歴史的に 72 または76 列で折り返され 全ての行にハードリターンが付いていました ウェブ以前から メーリングリストや引用された返信に現れる慣習です コードコメントやログファイル 固定幅端子に印刷されたものは 何でも同じことをします これら全てにおいて 改行は思考の終わりを告げるものではなく たまたまそれだけ幅の広かった 物理的な行の終わりを告げるものです。
それをソフトラッピングを行う場所に貼り付けると、2 つのアイデアが衝突します。編集者はすでにテキストをフィットするようにラップしており、エッジに到達する前に線を短くカットする非常にハードなリターンが発生しています。その結果、階段ができました。奇妙な場所で折れて、リフローを拒否し、コピー元を除くすべてのウィンドウ サイズで折れているように見える線です。
改行を取り除くと何ができるのでしょうか?
改行を削除するということは、それらの改行文字を削除し、ピースを縫い合わせて、単語が再び連続テキストとして流れるようにすることを意味します。唯一の本当の決定は、各改行がかつてあったギャップに何を入れるかということです。
ほとんどの場合、1 つのスペースが欲しいです。なぜなら、改行は、文が通常持つであろう 2 つの単語の間のスペースの代わりになっているからです。たとえば、長い数字やコード トークンが 2 行に分割され、ギャップなしで再結合する必要がある場合などです。また、場合によっては、カンマや別の区切り文字が欲しい場合もあります。なぜなら、行は実際にはリストであり、カンマ区切りの値として 1 つの行にそれらを載せたいからです。ツールはこれらすべてに加えて、その他のカスタム フィールドを提供します。
知っておく価値のある文字がもう 1 つあります。 Windows は 2 文字で行を終了します。キャリッジ リターンの後に CRLF と書かれた改行です。Unix と最新の macOS は 1 つの改行、LF を使用します。非常に古い Mac ソフトウェアは 1 つの改行、CR を使用しました。さまざまなソースからのテキストを混合すると、3 つすべてのぼろぼろの組み合わせになり、そのうちの 1 つだけを探す素朴な検索と置換によって他のテキストが残ります。改行ツールは最初に 3 つすべてを正規化するため、テキストがどこから来たかは関係ありません。すべての行末は同じ方法で処理されます。
改行を削除しながら段落を保持するにはどうすればよいですか?
これはツールを鈍器から便利なものに変える機能なので、理解する価値があります。
文書内のすべての改行を削除するだけで、巨大な段落が 1 つ得られます。すべての文が 1 つの途切れることのない行にまとめられ、テキストを読みやすくする構造がなくなります。それが必要な場合もありますが、通常はそうではありません。必要なのは、段落間の意図的な区切りを維持しながら、各段落内の偶発的な改行を削除することです。
ツールは空白行を見て2 つを区別します 1 つの改行は段落内で偶発的な区切りとして扱われ 削除されます 2 行の改行である空白行は 実際の段落境界として扱われ 保持されます そこでこのように破られた文書は:
The quick brown fox
jumps over the lazy dog.
A second paragraph
follows after a blank line.
1 つの長い行ではなく、空白行の間に空白行を持つ2 つのクリーンな段落として出てきます これはまさにPDFまたはラップされた電子メールからコピーされたテキストの形状で、各段落は内部的に壊れていますが、段落は空白行で区切られています デフォルトであるkeep-paragraph-breaksオプションをオンにして、ツールはそれ以上のいじりなしで正しいことを行います。
1 行ですべてを本当に希望する場合は、そのオプションをオフにします。入力全体の改行はすべて、選択した区切り文字に置き換えられます。これにより、値の列を 1 つのカンマ区切りの行に変換します。
どのセパレータを選択すればよいですか?
分離器は取り除かれた各改行を置き換える文字列です 正しい選択は線が何を表すかによって異なります 共通のオプションが同じ3 行入力でどのように動作するかは apple、 banana、 cherry:
| セパレーター | 結果 | のときそれを使って下さい |
|---|---|---|
| 宇宙 | apple banana cherry |
セリフとは、散文として読むべき単語または文の断片です |
| なんでもない | applebananacherry |
1 つのトークンが行に分割され、ギャップなしで再結合する必要があります |
| コンマ | apple, banana, cherry |
行は、カンマ区切りの値として必要なリストです |
| セミコロン | apple; banana; cherry |
データ内のカンマと衝突しないリスト区切り文字が必要です |
| パイプ | apple | banana | cherry |
Markdown テーブル行または区切られたレコードを構築しています |
| カスタム | 何を入力しても | などの特定のジョイナーが必要です - またはタブ |
通常の散文の他の選択肢よりもはるかに頻繁に正しいため、スペースがデフォルトです。リスト区切り文字は、データを読み取るのではなく再形成するときに真価を発揮します。たとえば、スプレッドシートからコピーした列をクエリに貼り付けることができる 1 つの行に変換します。
クリーンアップオプションは何をしますか?
2 つの追加のトグルが結合自体を超えて出力を整理し、ほとんどの場合役立つため、両方ともデフォルトでオンになります。
Trim は行を結合する前に各行の先頭と末尾の空白を削除します。これは、コピーされたテキストには表示できない末尾のスペースが頻繁に含まれており、行が独自の行ではなくなったら保持したくない行末のインデントが頻繁に含まれるため重要です。トリミングしないと、それらの迷走スペースは結合後も残り、結合されたテキストの真ん中に厄介なギャップとして表示されます。
スペースを折りたたむとさらに一歩進んで、2 つ以上のスペースやタブの実行を 1 つのスペースに減らします。行を結合すると、後続のスペースが先頭スペースと交わる二重スペースになったり、元のテキストがスペースを使用して何かを揃えたりすることが簡単になります。それらを折りたたむと、散文が期待する単一の間隔が得られます。重要なことに、これはスペースとタブにのみ接触し、段落を区切る改行は決して接触しないため、段落を認識した結合が元に戻ることはありません。
また、入力に段落ギャップになりたくない迷子の空白行がある場合、デフォルトでオフになっている remove-empty-lines オプションもあります。これを使用すると、空の行は保存されるのではなくドロップされるため、二重間隔のエクスポートをクリーンアップするのに役立ちます。
ブラウザでこれを行うことは安全ですか?
はい、これは私が気にする点です。なぜなら、それは Toolz.dev の背後にある設計哲学全体だからです。改行削除ツールは、JavaScript を使用してブラウザ内で完全に実行されます。貼り付けたテキストは、見ているページのメモリで処理され、サーバーにアップロードされることはありません。アカウントもログも、コンテンツをどこにでも運ぶネットワーク リクエストもありません。
それは最初に表示されるよりも重要です 人々が最も頻繁にリフローする必要があるテキストは、どこかプライベートからコピーしたテキストです: PDFからの契約、内部電子メール、顧客メッセージ、コードのブロックからそれをリモートサーバーに送信して改行を削除することは、そのような些細な操作のための不条理なプライバシー取引になります 作業はローカルであるため、アップロード制限もないため、非常に大きなドキュメントは短いものと同じくらい速くリフローし、ページの読み込み後に接続が切断された場合でもツールは動作し続けます このようなユーティリティではクライアント側の処理が正しいデフォルトである理由についてより長い引数が必要な場合は、に書き上げました データプライバシーとオンラインツールのガイド。
これは find と replace とはどう違うのでしょうか?
もちろん、find と replace を備えた任意のエディタでこれを自分で実行できます。 1 回限りの場合は問題ありません。私がまだ専用ツールに手を伸ばしている理由は、手動の find-and-replace が間違っている 3 つの点にあります。
まず段落の問題です。 newline をスペースで単純に置き換えると、段落境界から段落内の区切りを指示できないため、すべてが 1 行に平坦になります。段落を手で保存するには、2 段階のダンスを行う必要があります。まず、二重改行をプレースホルダーに置き換え、次に単一改行をスペースに置き換えてから、二重改行を元に戻します。それは手間がかかりやすく、間違えやすいです。
第二に、混合行の語尾。 crlf、lf、cr の混合がテキストにある場合、単一の検索と置換のパターンがそれらの一部を見逃し、敗残者を探していることになります。ツールは 3 つすべてを前線で正規化します。
第三に、空白のクリーンアップ。参加した後、通常は二重スペースを折りたたんで端をトリミングします。これは、適切な順序で実行された 1 つまたは 2 つの交換パスです。ツールは、これらすべてを目に見えるトグルを使用して 1 つの操作に折りたたむため、全体をやり直すことなく、それぞれが何をしているかを正確に確認して調整できます。
これはどれも手作業では不可能です。単に遅く、エラーが発生しやすいため、専用のツールは、それが必要な2 回目または3 回目に自分自身のために支払います。 同じロジックが、私が小さなテキストユーティリティの棚全体を保持している理由です 重複 ラインリムーバー リストと を推定するため ラインソータ 毎回スクラッチ スクリプトに手を伸ばすのではなく、注文するためです。
改行をすべて削除したいのはいつですか?
すべてを 1 行に折りたたむための本物のケースがあり、段落オプションをオフにするタイミングを知るために呼び出す価値があります。
最も明確なのはデータの再形成です スプレッドシートから1 つの列をコピーすると 1 行に1 つの値として届きます SQLにドロップするカンマ区切りリストとして IN (...) 節またはコンフィグ配列。 keep-paragraph-breaks をオフにし、カンマ区切り文字を選択すると、行が表示されます。パイプ区切り文字を使用して Markdown テーブル行を構築したり、クエリ文字列を組み立てたりする場合も同様です。
もう1 つは、ラップされたトークンに再参加することです。長いURL、base64 blob、または電子メールの行間で分割されたAPIキーは、区切り文字のない1 つの連続した文字列になる必要があります。 paragraph breaksをオフにし、区切り文字として何も選択せず、フラグメントは1 つのトークンに戻します。
経験則は簡単です。人間が読むために散文を掃除している場合は、段落をオンにしておきます。テキストを機械可読の 1 つの値に再形成している場合は、それらをオフにします。同じ入力で 2 つの間を切り替えることができ、結果の更新をしながら見ることが、両方の動作を 2 つではなく 1 つのツールに構築した理由です。そして、掃除されたテキストがどこかに向かっている場合は、サイト上のより広範なキットを編集し続けます ケースコンバーター に the ワードカウンター、この1 つをオフに離れてどこをピックアップ 日常のテキストとコードのヘルパーのより広いセットのために、 開発者の生産性向上ツール ガイド 良い地図です コーディング ツール ガイド 書式側をカバーします.
よくある質問
テキストから改行を削除するにはどうすればよいですか?
テキストを改行を削除ツールに貼り付けて、デフォルト設定を維持します 段落内のすべての改行を単一のスペースに置き換え、結合された結果を即座に表示し、それをコピーして、すべてがブラウザで発生します。
改行を削除するときに段落を保持するにはどうすればよいですか?
デフォルトである keep-paragraph-breaks オプションはオンにしたままにします。このツールは、各段落内の 1 行の区切りを平坦化するだけで、段落間に 1 行の空白行を保持するため、テキストの構造は 1 行に折りたたまれるのではなく維持されます。
すべての行を 1 つの行に結合できますか?
はい。 keep-paragraph-breaks オプションをオフにすると、入力全体が 1 つの連続した行に折りたたまれます。これは、値の列を 1 つのカンマ区切りの行に変換したり、行間で分割されたトークンに再結合したりするのに役立ちます。
改行と馬車返却の違いは何ですか?
改行は、Unix および最新の Mac システムで使用される改行文字です。キャリッジ リターンは古い Mac のエンディングであり、Windows は両方を CRLF として一緒に使用します。このツールは 3 つすべてを正規化するため、ソース テキストがどこから来たかに関係なく、同じ方法で結合されます。
改行をスペースではなくカンマに置き換えるにはどうすればよいですか?
カンマ区切り文字を選択します。削除された各改行はカンマとスペースに置き換えられ、行のリストがカンマ区切りのリストに変わります。カスタム オプションを使用すると、タブやダッシュなど、必要なジョイナーを使用できます。
なぜ出力にはまだ二重スペースがあるのでしょうか?
これは、行が結合される前にスペースで既に終了している場合に発生します。 collapse-spaces オプションをオンにして、スペースやタブの実行を 1 つのスペースに減らし、トリムをオンにして最初に行の末尾のスペースを削除します。デフォルトでは両方ともオンです。
改行を削除すると、テキストの単語が変更されますか?
いいえ ツールは改行文字のみを削除し、尋ねると、空白を整理します。単語、句読点、およびそれらの順序は元のままであるため、テキストの意味は変わりません。
ここにプライベートテキストを貼り付けるのは安全ですか?
はい。すべての処理は完全に JavaScript を使用したブラウザで行われます。テキストはアップロードまたは保存されることはなく、ページが読み込まれるとツールはネットワーク接続なしで動作し続けるため、契約、電子メール、コードに対して安全です。



