重複行削除ツールはテキスト 1 ブロックを受け取り, 行に分解し, それより前の行と完全一致する行をすべて削除します. ブラウザ内で, です. プレースホルダは動作例そのもので, apple, banana, apple, cherry, banana, date です. Remove Duplicates ボタンを押すと, 結果ブロックが読み取り専用欄に重複排除済みのテキストを印字し, その上の一行的な緑の行が Removed 2 duplicate(s) と読みます. 何も送信されません: 分解, セット, 結合はすべてデバイス上で走り, Clear ボタンが入力, 出力, 計数を消します.
受け取るものと出すもの
入力は 1 つのテキストエリアで, 10 行の高さ, 縦にリサイズ可能, それ以外は何も求めません. その上に全てをリセットする Clear ボタンが, その下に動作ボタン Remove Duplicates が 1 つあるので, 計算はライブではありません. ボタンを押したときだけ結果が変わります. 出力は同じ高さの読み取り専用テキストエリアで, コピーボタンは Result ラベルの横にありますが, 出力が空でないときだけ表示されます. 緑の計数行, Removed N duplicate(s), も N が 0 より大きいときだけ現れるので, 重複のない入力では結果しか表示されません.
重複排除はどうか動くか
入力は改行文字で配列に分解され, 保持済みの行を全部覚えるセットを持ち, 行が順番に歩かれます. 行が初めて見えたときはセットに入り出力リストに入り, 以降見えたときは毎回重複として 1 回だけ数えられて捨てられます. 保持された行は改行で結合されるので, 出力は重複をくり抜いた入力で, 最初に現れた順, 元の順序のまま, 決して並び替えられません. プレースホルダの apple, banana, apple, cherry, banana, date では, 結果は apple, banana, cherry, date で, 削除は 2. 歩行は 1 回のパスなので, 100,000 行, そのうち 50,000 行がユニーク, の入力は約 40 ミリ秒で処理されます.
何が同じ行と数えられるか
2 つの行が同じなのは, 全文字が一致するときだけで, 比較は正規化のない完全一致の文字列テストだからです. 大文字小文字は数えられ, A と a は別行でどちらも残ります. 空白は数えられ, 末尾 1 スペースの a と先頭 1 スペースの a は別行でどちらも残ります. アクセントは数えられ, café と cafe は別行でどちらも残ります. 空行も行として数えられます. 空の行も行だし, スペース 1 つの行はスペース行なので, スペース 2 つの行は 1 つに減ります. 重複が上記のどれかで違えば, このツールにとっては重複ではなく, 計数は 0 のままです.
改行と空行に起こること
分解は改行文字だけを見るので, 改行で終わるファイルは最後に 1 行, 空の行, が付き, それは空行の最初の出現として保持されます. a と b がそれぞれ 1 行, 末尾に改行, の入力はそのまま戻り, 削除 0 です. 連続の空行 2 つは 1 つに減り, 改行 1 つだけの入力は 1 行を削除して空の結果を印字し, 結果ブロックは表示されますがコピーボタンはありません. Windows 改行が刃で, 分解はキャリッジリターンを取り除かないので, Windows ファイルから読んだ同じテキストはそれのないテキストと同じ行ではなく, 結果のコピーはキャリッジリターンを持ちます.
削除計数はどうか読まれるか
緑の行は捨てられた行の数だけ数え, 保持された行は数えません. 同じ 4 行 x x x x は 3 を削除して 1 を保持し, 交互の入力 1 2 1 2 は 2 を削除して 2 を保持し, 完全一致の重複のない入力は何も表示されません. 行は計数が 0 より大きいときだけレンダリングされるからです. 計数は入力行数と出行数の差で, それ以上ではありません.
テキストはどこへ行くか
デバイスの外へは行きません. テキストエリアの値はページで読み取られ, 分解, セット, 結合はブラウザ内で走り, いかなる時点でもネットワーク要求はありません. 履歴も, 保存された結果もない: ページの状態は 3 つの値, 入力, 出力, 計数, のみで, Clear は 3 つを空と 0 にリセットします. コピーはブラウザのクリップボードを使うので, コピーを押してどこかに貼り付けたときだけ, テキストはページを離れます.
何ではないか
ツールは行を重複排除するだけで, テキストを正規化しません. ほぼ同一の行を異なって見せるスペースと空行を取り除くのは 空白クリーナーの仕事で, 先に使います. 保持された行を並べ替えるのは 行のソートの仕事で, 後に使います. 行ごとにではなく単語ごとに出現回数を数えるのは 単語出現頻度の仕事です. 同系のテキストツールの解説は テキスト逆順ガイドを見てください.