2016-03-07 62 views
0

我有一組需要批量加載到數據庫中的大數據文件。數據行是pipe |但是也使用引號「來描述文本條目,問題在於許多文本塊還包括一個或多個額外的」字符,而不是在字段的開始/結尾處的字符,這正打破了導入。正則表達式在分隔符之間查找兩個以上的字符

我希望找到一個正則表達式,讓我找到包含每組||分隔符之間的兩個以上的「字符的文件中的行

例如

123。| 「史密斯先生」 | 456 |「沒有多餘的引號,這條線路是好的」 | 789

123 |「瓊斯先生」 | 456 |「這其中有‘額外的引號’,不是那麼好」 | 789

123 |「瓊斯先生」| 456 |「即使是一個額外的」有點問題「| 789

我需要找到像上面第二個和第三個的行。

任何援助讚賞!

謝謝

+1

您使用的是什麼引擎? – Shafizadeh

+0

請格式化您的輸入字符串示例 – user2148124

+0

還有什麼你已經嘗試過? –

回答

0

它可以通過管道輸出到awk如下完成。假定輸入中的管道確實出現在每行的開始和結束處。

| awk -F'|' 'BEGIN{OFS="|";}{ \ 
    for (i = 1; i <= NF; i++) { \ 
    if (gsub(/"/, "\"", $i) > 2) { \ 
     print; break; \ 
    }; \ 
    }; \ 
}' 
+0

謝謝你,這是一種享受! – Blimbeard

+0

很高興,它幫助。 – soumen

相關問題