-1
我有一個csv文件,其中3列用','分隔符分隔。在數據中有一些值,我想刪除整個記錄。建議如果我可以使用sed/awk,grep命令來做到這一點。從unix中的csv文件中刪除帶有額外分隔符的行
輸入文件:
- 監視器,顯示器,45
- 鍵盤,輸入,20
- 響亮,揚聲器,輸出20
- 安裝,輸入,20
預期產出:
- 監視器,顯示器,45
- 鍵盤,輸入,20
- 安裝,輸入,20
我有一個csv文件,其中3列用','分隔符分隔。在數據中有一些值,我想刪除整個記錄。建議如果我可以使用sed/awk,grep命令來做到這一點。從unix中的csv文件中刪除帶有額外分隔符的行
輸入文件:
預期產出:
我用grep命令過濾掉額外逗號行。
grep -v '.*,.*,.*,.*' input_file > output_file.
下面是如何使用AWK做同樣的,基本上你想在其中恰好有3場
$ awk -F, 'NF==3 {print $0}' data1.txt
monitor,display,45
keyboard,input,20
mount,input,20
你嘗試什麼記錄? – npinti
使用正則表達式可以更容易地提取有效的東西,而不是擦除不正確的東西。例如,在PHP中,可以使用'preg_match_all()'使用該正則表達式'/(?:(?:\ w +,){2} \ w +)/ m'來提取數組中的所有有效行並迭代該數組將數據推回到新文件中。仍然在PHP中,如果在獲取數據後關閉初始連接,則可以覆蓋CSV文件。 –