從MySQL導出表,其中沒有值的字段將具有關鍵字NULL。Sed刪除NULL,但僅當NULL表示空或無值時
| id | name | nickname | origin | date |
| 1 | Joe | Mini-J | BRAZIL | NULL |
我寫了一個腳本,以使用一班輪sed的,這將刪除日期欄正確的NULL自動去掉NULL的所有實例:
sed -i 's/NULL//g'
然而,我們如何處理IF我們有以下幾點?
| id | name | nickname | origin | date |
| 1 | Joe | Mini-J | BRAZIL | NULL |
| 2 | Dees | DJ Null Bee| US| 2017-04-01 |
| 3 | NULL AND VOID | NULLZIET | NULL| 2016-05-13 |
| 4 | Pablo | ALA PUHU MINULLE | GERMANY| 2017-02-14 |
顯然,全局搜索和替換NULL的所有事件都將被刪除,其中甚至「ALA PUHU MINULLE」將成爲「ALA PUHU MIE」,這是不正確。
我想使用正則表達式可能會適用於規則?但如果是這樣,「DJ Null Bee」會受到影響,還是會變成「DJ Bee」?理想的結果應該真正:
| id | name | nickname | origin | date |
| 1 | Joe | Mini-J | BRAZIL | |
| 2 | Dees | DJ Null Bee| US| 2017-04-01 |
| 3 | NULL AND VOID | DJ Null Bee| | 2016-05-13 |
| 4 | Pablo | ALA PUHU MINULLE | GERMANY| 2017-02-14 |
鑑於NULL爲任何數據庫的一個特殊的關鍵字,但沒有阻止任何人自稱爲一個DJ NULL,或有字NULL,因爲它用另一種語言意味着不同。
有關如何解決此問題的任何想法?歡迎任何建議。謝謝!
使用awk或類似的理解字段。 – 123
或者可能有一種方法可以用mysql自己做...有類似的問題問sday:https://stackoverflow.com/questions/44889613/replace-an-entire-field-value-in-a-file -using-awk-or-other – Sundeep
是的,例如使用'SELECT COALESCE(name,「」)'將NULL轉換爲空字符串。 –