リストを並べ替えると、結果が返ってくるまで、コンピューティングにおいて最も解決された問題のように聞こえます file10 上 file2、上部に束ねられるあらゆる大文字の名称、 $5 stranded at the bottom of a price list, and "Apple" and "apple" counted as two different entries.それらのそれぞれは、言われたことを正確に実行しているソートです。 "アルファベット順" がいくつかの異なるルールを隠しており、間違ったルールを選択すると、技術的にソートされ、実質的に役に立たないリストが生成されます。
このガイドでは、日常的なリストにとって重要な順序規則、つまりバイト順、ロケールを意識したアルファベット順、埋め込み数字の自然順、真の数値順、長さ順について説明します。また、トリミングや重複の削除などのクリーニング手順が並べ替えとどのように相互作用するかについても説明します。作業例では、が使用されています ツールツラインソーターと表示され、表示されている各出力は、そのコードが生成するものです。
tl;dr: テキストの行を並べ替えるには、1 行に1 つの項目を貼り付けてモードを選択します。 Toolz Line Sorterのアルファベット順はロケールを認識していて自然なので、
item2前に来ますitem10、および Ignore case (デフォルトでオン) は " Apple" と "apple" を一緒に保持します。 numeric モードは各行の先頭の数字で注文し、数値以外の行を下にシンクします。 length モードは文字数で注文します。 cleaning はソート前に実行されます。 trim whitespace, drop blank lines, then remove duplicates keeping the first occurrence.The オンライン回線ソーター クライアント側にあり、無料で、サインアップはなく、入力時に更新されます。
ラインソーターは何をしますか?
行ソータはテキストのブロックを取り、各行を1 つの項目として扱い、選択したルールによって行を再配置します。 通常、同じツールが同時にリストをクリーニングします: 迷走スペースのトリミング、空白行の削除、重複の削除。
Toolzバージョンでは、次の5 つのモードと4 つのクリーニングオプションが提供されます:
| 設定 | それが何をするか | デフォルト |
|---|---|---|
| AからZへ | 自然数処理によるロケール認識のアルファベット順 | 選択 |
| 数字 | 各行が で始まる番号による順序 | |
| 長さ | 文字数による順序、最も短い順 | |
| 逆 | ソートせずに現在の行順を反転します | |
| シャッフル | ランダムな順序; 再シャッフルするには、もう一度クリックします | |
| 下降 | A の結果を Z、数値、または長さに反転します | オフ |
| 空白行を削除 | 空または空白のみである行をドロップします | オン |
| 重複を削除 | 各行の最初の出現を保持します | オフ |
| 空白をトリムする | 各行の両端にあるスペースとタブを削除します | オフ |
| 大文字と小文字を無視 | ソートと重複のために行を小文字として比較します | オン |
出力パネルには、何本のラインが出て、何本が削除されたかが表示されるため、クリーニング オプションの効果が一目でわかります。
なぜfile10 はfile2 より前に来るのですか?
プレーン テキスト ソートでは、文字列を一度に 1 文字ずつ左から比較するためです。 file10 あんど file2 4 文字で一致すると、5 番目の文字になります 1 一つに 2 もう一方には。 という字 1 前に並べ替えた 2、そうです file10 勝ったので、比較では 10 が 2 より大きい数字であるという事実は決して考慮されません。
自然な並べ替えは数字の各実行を読み取ることによってこれを修正します。 Toolzラインソータ& #39; s AからZへのモードは、ブラウザ& #39; s 数値比較をオンにした組み込み照合を使用して、そのために説明されているオプション MDN 上の String.prototype.localeCompare. その下の順序ルールは、から得られます Unicode 照合アルゴリズム、ブラウザは、どのように決定するかです " e" " の後にではなく、 " e" の近くをソートします。 z" の後。
以下は、3 つのルールの下で同じ5 項目のリストです:
| 入力 | バイト順 ()LC_ALL=C sort) |
文字順、ケース折り | 自然秩序 (ツール A ~ Z) |
|---|---|---|---|
item10 |
Item1 |
Item1 |
Item1 |
item2 |
item10 |
item10 |
item2 |
Item1 |
item2 |
item2 |
item3 |
item3 |
item3 |
item3 |
item10 |
zebra |
zebra |
zebra |
zebra |
バイト 順序 置く Item1 まず大文字だから I は、小文字のどれよりも低いコードを持つ。 case folding を持つ文字順は、大文字を固定するが、それでも puts を置く item10 前に item2。 自然秩序は両方を正しく得る.
大文字と小文字はアルファベット順の並べ替えにどのような影響を与えますか?
生のバイト順序では、すべての大文字はすべての小文字の前に並べ替えられるため、名前のリストは 2 つのアルファベット順の実行に分割できます。最初に大文字のエントリをすべて入力し、次にすべての小文字を入力します。ロケール認識ソートではそれを行いません。最初に文字を同じ文字として扱い、大文字と小文字のみを使用して関係を解消します。
Ignore case オプションはさらに一歩進んで、すべてを小文字として比較します。2 行がケースごとにのみ異なる場合、それらは等しいものとして比較され、ソートは入力の出現順にそれらを保持します。これは、以下で説明する重複にとって重要です。
組み込みサンプルを使用した作業例
"Load sample" をクリックすると、入力は10 行になります: banana、 Apple、 cherry、 apple、 10、 2、 Banana、 date、 空白行 、 と grape。
| 設定 | 出力 | カウントが示されています |
|---|---|---|
| デフォルト: A ~ Z、大文字と小文字を無視、空白行を削除 | 2, 10, Apple, apple, banana, Banana, cherry, date, grape |
9 行、1 行削除 |
| 追加 重複を削除します | 2, 10, Apple, banana, cherry, date, grape |
7 行、3 行削除 |
| 重複を削除し、大文字と小文字を区別しません | 2, 10, apple, Apple, banana, Banana, cherry, date, grape |
9 行、1 行削除 |
| デフォルトと降順 | grape, date, cherry, Banana, banana, apple, Apple, 10, 2 |
9 行、1 行削除 |
その表には3 つの詳細が表示されます アルファベットモードでは数字が文字の前に来ます そして 2 先行します 10 自然な順序付けのため。 無視大文字と小文字をオンにして、 Apple 先を行きます apple 入力で最初に現れたからです。 「大文字と小文字を無視」をオフにすると、browser's の照合により、小文字の形式が大文字の形式のすぐ前に配置されます。これは、英語のブラウザでは通常の動作であり、同じではないため、どの行も重複としてカウントされません。下降は昇順の結果の完全な反転であるため、結び付けられた行も反転します。
アルファベット順と数字順: それぞれをいつ使用しますか?
ファイル名、バージョン ラベル、住所などの数字を含むテキストにはアルファベット順 (自然) モードを使用します。各行が数字である場合、または 1 で始まる場合は数字モードを使用し、行を値順に並べたいとします。
数値モードは、JavaScript's のように各行の先頭の数値を読み込みます parseFloat する。 と、先頭スペースをスキップし、省略可能な符号、桁、小数点と指数を読み、数字を続行できない最初の文字で停止する。 number で始まらない行は、下に行き、元の順序を保つ。
| 線 | 使用された値 | 注記 |
|---|---|---|
42 |
42 に指定されています | |
-7.5 |
-7.5 | 負の値と小数の値が機能します |
1e3 |
1000 | 科学表記が読まれます |
12 apples |
12です | 数字の後のテキストは無視されます |
1,000 |
1です | 読書がカンマで止まる |
$5 |
数字ではありません | 下部に沈みます |
v2 |
数字ではありません | 下部に沈みます |
ソート $5、 42、 1,000、 -7.5、 12 apples、 1e3 数値モードでは、以下を与えます:
-7.5
1,000
12 apples
42
1e3
$5
その出力には 2 つのトラップが含まれています。 1,000 数千の区切り文字が数字を 終わらせるので 1 にソートされます. 最初に でそれらをストリップします. 見つけて交換します データがそれらを使用している場合。 と $5 下に落ちた; 価格を並べ替える前に通貨記号を削除します。
数値モードで下降すると結果全体が反転します。つまり、数値以外の行は下から上に移動します。数値を降順にのみ指定したい場合は、最初に数値以外の行をクリーンアップします。
長さによる並べ替えはどのように機能しますか?
Length モードでは、行に含まれる文字数、最短の先頭、または最長の先頭で降順に並べます。同じ長さの行は入力順序を維持します。
カウントはJavaScriptの文字列長で UTF-16 のコード単位をカウントします 普通の文字や数字や アクセント付きラテン文字で 目に見える文字の数に等しい場合: café は4.ほとんどの絵文字と一部の珍しい文字は2 つのコード単位を使うので、 ok👍 3 ではなく 4 としてカウントされます。単語、名前、または URL のリストでは、これが重要になることはほとんどありません。
長さの並べ替えは、異常に長い製品タイトル、切り取られたエントリ、リスト内の最も短いキーワードなどの外れ値を見つけるのに役立ちます。
洗浄や仕分けはどのような順序で行われますか?
手順は常に固定されたシーケンスで実行され、順序は最も驚くべき結果を説明します:
- 割れる 行への入力。unix 行末と Windows 行末の両方を受け入れます。
- トリム trim ホワイトスペースがオンの場合、各行。
- 空白行を削除、 on の場合。 spaces のみを含む行は、Trim off であっても空白としてカウントされます。
- 重複を削除、 on の場合.最初の発生は保持される. Ignore case on では,大文字と小文字のみが異なる行は重複としてカウントされ,最初の1 つの筐体は生き残る.
- ソート、リバース、またはシャッフル 残っているもの.
トリミングはオプションであり、デフォルトではオフであるため、 apple あんど apple (末尾にスペースがある) は、Trim をオンにしない限り、重複を比較するときに 2 つの異なる行になります。 " remove duplicates" pass がエントリを欠席しているように見える最も一般的な理由です。スプレッドシートから貼り付けられたタブでも同じ結果が生じます。
最後の出現を維持したり、各行の一部のみを比較したりするなど、より重い重複作業の場合は、 重複 ラインリムーバー ガイド オプションをより詳しく説明します。
逆方向と下降: 違いは何ですか?
逆順は、何も並べ替えることなく、現在の行の順序を反転します。 c, a, b なる b, a, c。 descending sorts first and then flips, so.降順は最初にソートしてから反転するので、 c, a, b a ~ Z では下降が になります c, b, a。
最も古いエントリが最初にあるログファイルなど、元の順序が何かを意味する場合に逆方向を使用し、最も新しいものを最初に使用します ZからA、または最大から最小にソートされたリストが必要な場合は、下方向に移動するものがないため、下方向へのボタンは逆方向モードとシャッフルモードで無効になります。
シャッフルは十分にランダムですか?
このシャッフルでは、乱数が均一である場合にあらゆる順序に等しい確率を与えるフィッシャー イェーツ アルゴリズムが使用され、ブラウザーからそれらの数値が抽出されます' s Math.random(). 読書リスト、プレイリスト、またはプレゼンテーション順序をランダム化する場合、それは問題ありません。これは暗号のランダム ソースではないため、賞品の抽選など、誰かが結果を予測したり異議を唱えたりする理由がある可能性のあるものについては、間違った選択です。それらの場合は専用です リストランダマイザー より良いフィット感です。 「シャッフル」をもう一度クリックして、新しい注文を取得します。
機密リストをオンラインで並べ替えても安全ですか?
このツールを使用すると、はい。並べ替えとクリーニングはクライアント側で、ブラウザ タブの JavaScript で行われます。テキストはアップロードまたは保存されず、ページが読み込まれるとツールはネットワークとの動作をオフにし続けます。電子メール アドレス、顧客名、または内部ホスト名のリストはマシンから離れることはありません。
実用的なサイズ制限は、サーバーのキャップではなく、ブラウザ& #39; s メモリです。数万行は、一般的なラップトップで即座にソートします。非常に大きなファイルは、数百メガバイト単位で、コマンド ラインで処理するのが適切です。
よくある線分けミスとは?
| 症状 | 原因 | 修正 |
|---|---|---|
file10 上 file2 別のツールで |
平易な文字比較 | 自然ソート (ここでは A から Z) を使用するか、 sort -V |
| 大文字のエントリはすべて上部に表示されます | バイト順ソート | ロケールを意識したソートまたは Ignore ケースを使用します |
| 重複は削除されません | 後続のスペースやタブは異なります | Trim whitespaceをオンにします |
| "アップル&クォート; と " アップル&クォート; 両方保持 | Ignore ケース オフ | Ignore ケースをオンにします |
1,000 1 としてソート |
数千の区切り文字で数値が終了します | 数値ソートの前にカンマを削除します |
との価格 $ 下部に |
行は数字で始まるわけではありません | 最初に通貨記号をストリップします |
| 降順の数値リストは単語から始まります | 数値以外の線は上部に反転しています | 最初に数字以外の行を削除します |
| 出力には、もう1 つの " removed" 予想よりも | 後続の改行により、空の最後の行が作成されました | 予想;空白行を削除しました |
オンライン回線選別機の代替
| ツール | 並べ替え方 | 注意事項 |
|---|---|---|
GNU sort |
sort -f (折り畳みケース)、 sort -n (数値)、 sort -V (ナチュラル)、 sort -u (ユニーク)、 sort -r (リバース) を表す |
スクリプト可能で、巨大なファイルを処理します。を参照してください GNU ソート マニュアル |
shuf |
shuf list.txt |
コマンドラインでのランダムな順序 |
| シェルの長さで並べ替えます | awk '{ print length, $0 }' list.txt | sort -n | cut -d' ' -f2- |
ロケールに応じてバイトまたは文字をカウントします |
| スプレッドシート | 列に貼り付け、データ、並べ替え | 行に複数のフィールドがある場合が良いです |
| Code editors | "並び替え" 多くのエディターでコマンド | 動作はエディターによって異なります |
| Toolz ラインソーター | 貼り付け、モードをクリックします | ライブプレビュー、ワンパスでのクリーニング、クライアント側 |
注意してください sort 出力はによって異なります LC_ALL や LANG locale setting, which is why the same command can give different orders on two machine. LC_ALL=C forces バイト順.
一歩一歩リストを並べ替えます
- を開きます テキスト行ソータ そして、1 行に 1 つの項目をリストとして貼り付けます。
- 単語とファイル名には A ~ Z、数字には Numeric、文字数には Length を選択します。
- リストがドキュメントまたはスプレッドシートから貼り付けられた場合は、空白をトリミングをオンにします。
- 各エントリを 1 回必要な場合は、「重複を削除」をオンにします。大文字と小文字を区別してマージするには、「大文字と小文字を区別しない」をオン
- 出力カウントと " を確認します。削除され、引用;数.
- コピーをクリックします.
リストの大文字も正規化する必要がある場合は、 ケースコンバータガイド タイトル、文、その他のケース、およびについて説明します テキストツールハブ 残りのテキスト ユーティリティを 1 か所に収集します。



