我有一組csv文件(大約250),每個文件都有300到500個記錄。我需要從每個文件中剪切2或3列並將其存儲到另一個文件中。我正在使用Ubuntu OS。有什麼方法可以在命令或實用程序中執行它?如何剪切csv的列
回答
如果您知道列分隔符不出現在字段內,則可以使用cut。
$ cat in.csv
foo,bar,baz
qux,quux,quuux
$ cut -d, -f2,3 < in.csv
bar,baz
quux,quuux
您可以使用shell buildin'for'循環所有輸入文件。
如果這些字段可能包含分隔符,那麼應該找到一個可以解析CSV文件的庫。通常,通用腳本語言將在其標準庫中包含一個CSV模塊。
Ruby: require 'csv'
Python: import csv
Perl: use Text::ParseWords;
如果字段包含逗號或換行符,您可以使用一個輔助程序,我寫,讓切(和其他UNIX文本處理工具),以正確的數據工作。
https://github.com/dbro/csvquote
該程序發現特殊字符引述領域內,並暫時與非打印,不會混淆的切割程序字符替換它們。然後在切割完成後恢復。
盧茨」解決方案將成爲:
csvquote in.csv | cut -d, -f2,3 | csvquote -u
是的,它對我來說非常好:https://stackoverflow.com/questions/17199311/how-to-delete-a-column-columns-of-a-csv-file-which-has-cell-values-with -a串/ 29134579#29134579 – nono 2015-03-18 23:39:58
如果使用ssconvert
獲得CSV你可以嘗試:
ssconvert -O 'separator="|"' "file.xls" "file.txt"
通知的TXT延伸,而不是CSV,這樣一來會使用Gnumeric_stf:stf_assistant出口商代替Gnumeric_stf:stf_csv,它允許您使用選項(-O
參數)。否則,你會得到一個該文件保護程序不採取選項錯誤。管道角色更不可能,但你可能想要檢查之前。
然後可以重命名和做的事情一樣:
cat file.csv | cut -d "|" -f3 | sort | uniq -c | sort -rn | head
- 其他選項例如:
-O 'eol=unix separator=; format=preserve charset=UTF-8 locale=en_US transliterate-mode=transliterate quoting-mode=never'
。 - A solution with AWK v4+。
ssconvert
man page。
- 1. 如何剪切CAShapeLayer?
- 2. CSV文件行在最後被剪切
- 3. 修剪CSV列不工作
- 4. 如何在null上「剪切」?
- 5. 如何「剪切」地址 - mod_rewrite
- 6. 如何剪切UIView內容?
- 7. iPhone如何剪切圈內的圓?
- 8. 如何剪切可可內的圖像?
- 9. Python csv切斷部分列
- 10. 使用剪切轉置列的問題
- 11. 如何剪切/剪切形狀並揭示其背後的形狀?
- 12. 如何通過符號修剪/剪切java中的字符串?
- 13. 剪切變量
- 14. 剪切圖像
- 15. 剪切文本
- 16. 如何使用C#剪切線?
- 17. 如何剪切熊貓數據幀
- 18. PHP:如何剪切單詞並添加「...」
- 19. 如何在Android中剪切圖像?
- 20. 如何更改,修改,剪切和BITMAP
- 21. 如何剪切視頻長度(Mp4)?
- 22. 如何剪切日誌文件?
- 23. 如何使用剪切命令
- 24. 如何使用分隔符「{##}」剪切?
- 25. 如何分割或剪切YUV文件?
- 26. 如何將圖像剪切成網頁
- 27. 如何從URL中剪切文件名?
- 28. 如何在JavaScript中剪切錄音
- 29. 如何從JS橫幅剪切形狀?
- 30. 如何判斷圖像被剪切?
你可以用類似的方式對所有文件進行可伸縮處理: 找到「* .csv」| xargs cut -d,-f2,3> out.csv – pixelbeat 2009-09-08 10:41:24
如果您想擺脫逗號或將其更改爲其他名稱,則可以使用'cut'的--output-delimiter = STRING'選項。 – 2009-09-08 14:16:19
這個答案的主要問題是'cut'不處理包含分隔符的引用字段。如果您的CSV文件具有這樣的數據,則需要使用其他內容。 – 2011-10-05 14:03:39