Sublime Textで重複行を抽出する方法はありますか?


6

Sublime Textで2つの操作を実行する必要があります。一意の行を抽出し、重複する行を抽出します。入力の例

a
b
a

重複を抽出すると、次のようになります。

a

固有の抽出は次のようになります。

b

それを行うための組み込みの操作またはプラグインはありますか?

回答:


10

を実行して、Sort Lines行境界マーカー^$後方参照を使用するこの正規表現を検索することにより、重複行を簡単に見つけることができます\1

^(.+)$\n^\1$

続いて、[すべて検索]、[コピー]、[新しいタブに貼り付け]、[行の並べ替え]を選択します。ユニークで、それらを抽出しました。


これは驚くべきことです。私が役立った小さな追加を追加しました。1.正規表現を実行します。 。別の正規表現を実行します。$ * ^ \ dをして、関連するタグ4と、\ dを交換するこれが唯一の重複値を保持します
オズRadiano

2

残念ながら、現時点ではSublime Textにアクセスできないため、これをテストすることはできませんが、次のようなことがうまくいくと思います。

  1. Edit -> Sort Linesコマンドを使用して行を並べ替える
  2. Highlight Duplicatesプラグインをインストールし、それを使用してすべての重複行を強調表示します
  3. ハイライトされた行をクリップボードに切り取り、新しいファイルに貼り付けます
  4. 元のファイルに残っている行は、固有の抽出行です
  5. 新しいファイルで、すべてのテキストを選択し、Edit -> Permute Lines -> Uniqueコマンドを使用して重複する行を削除します
  6. 新しいファイルに残っている行は、Extract Duplicates行です。

手順1が実際に必要かどうかは完全にはわかりませんが、念のために含めました。


私は同じことを疑問に思って試してみました(ここではSublime 3.0)...最初にソートする必要はありません。(Unix「uniq」とは異なります。)いいですね。
トムハント

0

Highlight Duplicatesプラグインを使用せずに、Sublime 3とDiffMergeで重複行を取得するために、上記の@MJHの回答をわずかに変更しました。

  1. Sublime 3 Edit -> Sort Linesコマンドで行を並べ替える
  2. 元のファイルをsorted_orig.txtとして保存します
  3. すべてのテキストを選択し、Sublime 3 Edit -> Permute Lines -> Uniqueコマンドで重複行を削除します
  4. 変更したファイルをno_dup_sorted.txtとして保存します
  5. sort_orig.txtおよびno_dup_sorted.txtファイルを使用してDiffMergeツールでdiffを開始します。
  6. Export -> File DiffsDiffMergeで使用して、クリップボードの重複リストを取得するか、別のファイルに保存します。

0

同じ問題を抱えていた(だまされた人を見せてください)... Sublimeベースの簡単な答えを見つけられず、Unixコマンドの使用にフォールバックしました(私のファイルには、列11-56の重複を見つけたいデータがありました):

cut -c 11-56 myfile.dat | sort | uniq -d

ここに他の人へのFYIとして投稿しました。


ちなみに私はそれを行うプラグインを作成しました
Poma
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.