回答:
行がアルファベット順に並べ替えられていない場合は、次の手順を実行します
(この関連質問に基づいて:正規表現を使用してファイルから重複する行を見つけて削除するにはどうすればよいですか?)
Control+F
「置換モード」を切り替えます
「正規表現を使用」(.*記号の付いたアイコン)を切り替えます
で、検索フィールドに入力し^(.*)(\n\1)+$
「置換」フィールドに、$1
この場合は、VS Code以外の解決策を使用するか(こちらを参照)、または-ドキュメントがそれほど大きくなく、[すべて置換]ボタンをスパム送信してもかまわない場合は、前の手順に従いますが、手順4および5に従います。これらを入力してください:(ソートせずに特定の重複する行を削除に
基づく)
注意:行が多すぎるファイル(1000以上)のブロック。VSコードがクラッシュする可能性があります。場合によっては空白行が導入されることがあります。
検索:((^[^\S$]*?(?=\S)(?:.*)+$)[\S\s]*?)^\2$(?:\n)?
と置き換えます:$1
次に、重複するオカレンスが存在する回数だけ「すべて置換」ボタンをクリックします。
ボタンをクリックしたときに行数の減少が止まれば十分です。ドキュメントの最後の行に移動して、それを監視します。
^(.*)(\n\1)+$。重複する行を削除した後、csvの最初の列が重複しているすべての行を確認し、正規表現を変更します。
\r?、他の答えからのビットが本当に必要ではないという点でのみ異なります。
これは非常に興味深い拡張です:Transformer
特徴:
重複する行を削除する場合:
ドキュメントから重複する行を削除します
選択されている場合、または選択されていない場合は現在のブロックで動作します
私は "Unique Lines"コマンド以外にはあまり遊んだことがありませんが、かなりうまくできているようです(マクロレコーダーを試すなど)。
@ Marc.2377の返信に追加します。
順序が重要で、重複する行の最後だけを保持することを気にしない場合、重複する空でない行のみを削除する場合は、次の正規表現を検索します。
^(.+\n)(?=(?:.*\n)*?\1)
重複する空行も削除したい場合は、*代わりに+
^(.*\n)(?=(?:.*\n)*?\1)
何も入れ替えない。
これは1行を取り、さらにいくつか(おそらく0)の行を探し、その後にまったく同じ行を探します。取られた行を削除します。
これは、1回限りの正規表現です。置換ボタンをスパムする必要はありません。
^(.+\n)(?=(?:.*\n)*?\1)代わりに、あなたの正規表現が予期していない場所で空の行を削除したので、それをお勧めします。とにかく賛成した。
xxx(?=…)先読み一致です。したがって、「xxx」に続くものはすべて「…」に一致することを確認しますが、検索を進めません。(?:…)括弧の数に含まれない単なる括弧です。.*\n(場合によっては空の)行のパターンです。*つまり、何行もない場合もあります。?アスタリスクの後の(*)は、できるだけ少ない行数が必要であることを意味します。\1この式を、以下の効果が、我々は一致しないすべての行を先読みということである\1私たちはラインマッチングを見つけるまで\1。これで明らかになることを願っています。
同じ問題が発生し、Visual Studio Codeパッケージの「Sort lines」が見つかりました。詳細については、Visual Studio Codeマーケットプレイスを参照してください(例:行の並べ替え)。
このパッケージには、「並べ替え(一意)」オプションがあり、それが私のために行われました。行頭/行末の空白に注意してください。行が一意であると見なされるかどうかに影響します。
DupChecker拡張機能をインストールし、を押して、F1「重複チェック」と入力します。
重複をチェックし、削除するかどうかを尋ねます。
実際にはVisual Studio Codeではありませんが、機能すれば機能します。
あなたがVisual Studio Codeを指定したので、それは最良の答えではありませんが、私が言ったように:それが機能する場合、それは機能します:)
((^[^\S\r\n]*?(?=\S)(?:.*)+$)[\S\s]*?)^\2$(?:\r?\n)?vscodeがクラッシュしました。1つのファイルで229行の検索を実行しました。:(