2
我有一些腳本使用awk
解析CSV文件。我注意到,如果一個單元格是空的,awk
只是移動到下一個單元格。這意味着,如果我問它來讀取列4,但該單元格是空的,它由5列,例如打印數據:使用awk解析CSV文件時,爲什麼會忽略空單元格?
echo "[email protected]@[email protected]@5" | awk -F "@*" '{print $4}'
我預期的結果是,它會打印什麼,因爲第4欄是空的。
- 爲什麼
awk
跳過第4列? - 我怎樣才能讓
awk
不忽略空列?
'awk'實際上是善良在這裏,而忽略了正則表達式的空匹配。由於正則表達式可以爲空(匹配空字符串),嚴格來說,輸入行「1234 @@ 5」應該實際分割爲字段1,2,3,4,5。或者甚至可以在開始處有一個額外的空字段並結束。畢竟,正則表達式匹配字符串中的每個位置。 – Kaz 2012-04-19 19:47:59
@Kaz好點。編輯答案,所以它更少誤導。 – 2012-04-20 11:01:34