65

Notepad ++で1行おきまたはn行目を削除する方法はありますか? 大量のデータ リストがあり、サイズを縮小する必要があります。

データ自体はそれほど重要ではなく、10,000 項目のリストから 5,000 項目のみを選択する必要があります

4

7 に答える 7

129

Notepad++ がこれに最適なツールかどうかはわかりませんが、正規表現の力を使用すれば、それが可能になるはずです。

置換メニューを開き、[([^\n]*\n)[^\n]*\n検索対象] ボックスと[置換対象]$1ボックスに入力します。次に、検索モードに正規表現を選択し、[すべて置換] をクリックすると、2 行おきに削除されます。

同様のことをしたい場合は、同様の正規表現を構築できます。たとえば、n - 1 で(([^\n]*\n){a})[^\n]*\n置き換えると、n 行ごとに置き換えられ、奇数行ではなく偶数行を保持できます。a[^\n]*\n([^\n]*\n)

于 2013-07-19T01:29:37.827 に答える
8

私は自分でこの問題に遭遇しました。検索/置換機能も使用して、私にとってうまくいったのは次のとおりです。

  1. Ctrl F を押して置換に移動します
  2. 検索モードで、「拡張 (\n、\r、\t ..)」を選択します。
  3. 検索対象: \n\n
  4. 置換: \n
  5. すべて置換
于 2016-03-02T21:27:35.600 に答える
6

Unix スタイルのプラットフォームを使用している場合は、awk でこれを実行できると思います。

awk 'NR % 2 == 0' file > outfile

NR は行番号なので、「その行が 2 で割り切れる場合は newfile に貼り付けてください」と表示されます。

あなたがWindowsを使用している場合、ここでの答えがうまくいくと思います:

10行のうちの1行を保持するバッチファイル

于 2013-07-18T22:55:26.980 に答える
0

Notepad++ には、1 行おき (または n 行おき) の行を自動的に削除する機能はないと思いますが、短い変換プログラムを作成すれば、数分しかかかりません。

擬似コードは次のようになります。

1. Create a StreamReader and StreamWriter (make sure you are not trying to read from
   and write to the same file)
2. While (StreamReader is reading lines) increment i. You could mod it by whatever 
   number n you wanted in order to delete certain lines. Then have a conditional clause
   that would write out if i%n == 0 or whatever you specify.
3. Close the program.

それはあなたの質問に正確に答えるものではありませんが、役に立てば幸いです。

于 2013-07-18T22:53:03.527 に答える