🧰 UtlKit

重複行削除の使い方: 完全一致で最初の出現を残す行の重複排除を, ブラウザ内で

テキスト 1 ブロックを行に分解し, 完全一致で重複排除して最初の出現を残し, 緑の削除行計数付き, 全てブラウザ内で計算.

重複行削除ツールはテキスト 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 にリセットします. コピーはブラウザのクリップボードを使うので, コピーを押してどこかに貼り付けたときだけ, テキストはページを離れます.

何ではないか

ツールは行を重複排除するだけで, テキストを正規化しません. ほぼ同一の行を異なって見せるスペースと空行を取り除くのは 空白クリーナーの仕事で, 先に使います. 保持された行を並べ替えるのは 行のソートの仕事で, 後に使います. 行ごとにではなく単語ごとに出現回数を数えるのは 単語出現頻度の仕事です. 同系のテキストツールの解説は テキスト逆順ガイドを見てください.

関連ツール

よくある質問

重複行削除ツールは私のテキストをサーバーにアップロードしますか?

いいえ. テキストエリアはページで読み取られ, 計算は保持済みの行のセットを持つ 1 回のパスの行歩行のみなので, テキストは装置の外に出ず, ネットワーク要求は一切ありません. 履歴も, 保存された結果もない: Clear を押すなりタブをリロードするなりすると, 入力, 出力, 計数が空になります.

なぜ私の重複行が削除されなかったのですか?

一致は完全で, 文字単位, 正規化はありません. 大文字小文字が 1 文字, 端のスペースが 1 つ, アクセントが 1 つ違う行は別行なので, A と a はどちらも残り, Windows ファイルのキャリッジリターンを持つ行はそれのない同じテキストと同じ行ではありません. どの行もそれより前の行の完全な繰り返しではないので, 計数は 0 のままです.

空行は削除されますか?

空行も行なので, どの行と同じように重複排除されます. 最初の空行は残り, それ以降の空行は毎回重複として数えられます. 改行 1 つだけの入力は 1 行を削除し, 結果ブロックはコピーボタンなしの空の出力を表示します. 改行で終わるファイルはその最後の空行を保持します. 空行の最初の出現だからです.

削除計数は何を意味しますか?

捨てられた行の数で, 保持された行の数ではありません, 0 より大きいときだけレンダリングされます. 同じ 4 行は 3 を削除し, 交互のペア 1 2 1 2 は 2 を削除し, 完全一致の重複のない入力では計数行はまったく表示されません. 計数は入力行数と出行数の差で, それ以上ではありません.

ツールは結果をソートしますか?

いいえ. 出力は行の最初の出現が入力に現れた順で保持します. サブタイトルが元の順序を保持すると書くのはそのためです. 重複排除後に保持された行をソートするには, 結果を行のソートツールに通してください.

関連記事