2013-07-18 118 views
33

在Notepad ++中是否有刪除每隔一行或第n行的方法?我有一個龐大的數據列表,我需要減小大小。在記事本中刪除其他所有行++

數據本身並不重要,並出10000項列表,我只需要選擇5000

+1

記事本+ +有沒有這樣的功能,但寫一個程序,將刪除每隔一行將只有少數 – zoran404

+0

我認爲一個批處理文件可能是我的情況的最簡單的選擇 – fightstarr20

回答

69

我認爲這是一個奇怪的主意,試圖用記事本++做的,但我喜歡挑戰,所以我決定給它一個旋轉。

打開替換菜單,在「查找內容」框中填寫([^\n]*\n)[^\n]*\n,在「替換爲」框中填寫$1。然後選擇搜索模式的正則表達式,點擊全部替換,每一行都被刪除。

如果你想做類似的事情,你可以創建類似的正則表達式。例如,如果將a替換爲n-1,並且[^\n]*\n([^\n]*\n)將讓您保持偶數行而不是奇數行,則(([^\n]*\n){a})[^\n]*\n將替換每個第n行。

(這是不難的 - 我所要做的就是更新我的記事本已經過時++安裝。)

+0

謝謝,這很奇怪,我使用手機上的跟蹤應用程序的GPS點,導出爲KML並導入到荔枝飛輪轂爲我的無人機,然而,有很多點,這是能夠減少這些仍然保持路線 – drooh

0

我不認爲這是在記事本+ +,將自動刪除所有其他要素(或每nth)行,但如果你寫了一個簡短的轉換程序,它只需要幾分鐘。

的僞代碼將是這個樣子:

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. 

這並不完全回答你的問題,但我希望它能幫助。

5

我認爲你可以使用awk,如果你是在UNIX式平臺做到這一點:

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

NR是行號,因此這將只是說「如果該行被2整除堅持下去在新文件中。「

如果您使用的是Windows,我認爲這裏的答案將工作:

batch file to keep one of ten lines

17

你可以嘗試使用宏。

  1. 開始錄製宏
  2. 按下n次
  3. 按Shift +結束
  4. 按刪除鍵兩次
  5. 停止錄製宏
  6. 運行宏,直到文件結束
2

我自己遇到了這個問題。什麼工作對我來說,也用查找/替換功能,就是:

  1. 按Ctrl F和去替換
  2. 在搜索模式中,選擇「擴展(\ n,\ r,\ t ..)」
  3. 查找內容:\ n \ n
  4. 替換爲:\ n
  5. 全部替換
+0

好又簡單!我需要替換「\ r \ n \ r \ n「與」\ r \ n「相同,但是具有相同的概念 –

相關問題