2017-08-30 53 views
-1

我發現了許多方法來將列轉置爲記事本++中的文本,反之亦然。但是,我掙扎的地方是我有一列有幾行。由於數據錯誤順序錯誤,我不能'只是'轉換這些數據。記事本+ ++行到列,組

例子:

RANK 
COMPANY 
GROWTH 
REVENUE 
INDUSTRY 
1 
Skillz 
50,058.92% 
$54.2m 
Software 
2 
EnviroSolar Power 
36,065.06% 
$37.4m 
Energy 

當我轉這一點,我風與:

RANKCOMPANYGROWTHREVENUEINDUSTRY 1Skillz50,058.92%$54.2mSoftware2EnviroSolar Power36,065.06%$37.4mEnergy 

我需要的一切留在集團,所以我風與以下,並指出我還需要分隔符補充說:

RANK|COMPANY|GROWTH|REVENUE|INDUSTRY 
1|Skillz|50,058.92%|$54.2m|Software 
2|EnviroSolar Power|36,065.06|$37.4m|Energy 

你可以與公司EnviroSolar動力看,之間有一個空格「EnviroSolar」和「Power」以及我嘗試過的任何東西都會消除在移調時應該保持機智的空間。

我非常感謝您提供的任何幫助!先謝謝你!

+1

你最好在你最喜歡的腳本語言編寫一個腳本。 – Toto

回答

0

假設你的行總是以整數(除了當然的標題行),並進一步啓動,只有第一列包含整數,你可以做這樣做有兩個搜索替換(按Ctrl + ^h)。

務必選擇「正則表達式」搜索模式。

首先與管道全部更換換行。這會把所有東西都放在一條線上。

查找內容:\n

替換:|

下一頁找到所有純數字領域,使他們開始線達到期望的結果。

查找內容:\|([0-9]+)\|

替換爲:\n$1|

0

如果你知道的列數,其實這裏是5,你可以分兩個步驟完成:

第一:

  • 按Ctrl +^h
  • 查找內容:(?:[^\r\n]+\R){5}
  • 替換:$0\n
  • 更換所有

說明:

(?:    : start non capture group 
    [^\r\n]+ : 1 or more any character but line break 
    \R   : any kind of line break 
){5}   : group must occurs 5 times, 
        here you can give the columns number of your choice 

這5列後添加一個換行符。

  • 檢查正則表達式

二:

  • 按Ctrl + H^
  • 查找內容:(\R)(?!\R)|(\R\R)
  • 替換:(?1|:\n)
  • 更換所有

說明:

(\R)   : any kind of line break, in group 1 
(?!\R)   : negative lookahead, make sure we have not another linebreak after 
|    : OR 
(\R\R)   : 2 line break, in group 2 

更換:

(?1    : conditional replacement, is group 1 existing 
    |    : yes ==> a pipe 
:\n   : no ==> linebreak 
)    : end condition 

這將對於給定的例子替代通過管道和2個連續換行一個換行符由單一的一個

結果:

RANK|COMPANY|GROWTH|REVENUE|INDUSTRY 
1|Skillz|50,058.92%|$54.2m|Software 
2|EnviroSolar Power|36,065.06%|$37.4m|Energy 
+0

爲了獲得所需結果的格式,您還需要通過正則表達式搜索「^ \ |'並從中刪除管道,並且不進行任何替換。 – Bananaapple

+0

@Bananaapple:確實,已編輯。 – Toto

+0

非常感謝! –