私は300から500のレコードを持つcsvファイル(約250)を持っています。私は各ファイルから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
シェル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-string/29134579#29134579 – nono
あなたはCSVを取得するためにssconvert
を使用した場合は、試してみてください:
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. Linuxのwhoisコマンドから文字列を切り取る方法
- 2. 特定の部分文字列を切り取る方法は?
- 3. CSVファイルの二重変数を切り捨てる方法python
- 4. csvファイルで文字列を区切る方法
- 5. 動的文字列を切り取る方法
- 6. フラットファイルから列データを切り取る方法
- 7. xmlで円を切り取る方法
- 8. オーバーフローdivを切り取る方法
- 9. cの文字列から部分文字列を切り取る方法
- 10. HTMLの文字列を「切り取る」
- 11. 列の値を列に切り替える方法は?
- 12. C#で文字列の最初の部分を切り取る方法
- 13. 区切りを使用してCSV引用文字列CSVファイルをPerlで区切ります。
- 14. Python - CSV Writing - 最終行を切り取る
- 15. IF文を使用してCSVの値を列に取り込む方法
- 16. 文字列の先頭から文字を切り取る方法。 Android
- 17. bashのファイルからバージョン文字列を抽出して切り取る方法
- 18. JAVAのサイズに基づいて文字列を切り取る方法は?
- 19. 昏睡区切り文字列をcsvに変換する
- 20. CSVファイルの列をスキップする方法
- 21. Cで文字列を切り取る
- 22. PythonでCSVファイルから列を読み取る方法
- 23. Jackson-dataformat-csvライブラリの区切り文字をESCAPEする方法は?
- 24. CSVまたはタブ区切りファイルをMySQLのマルチテーブルデータベースにマップする方法
- 25. キューブレポートを使用してssrsで "_"まで文字列を切り取る方法
- 26. スラッシュで区切られた.csvデータファイルをmatlabに読み取る方法
- 27. csvファイルでファイル名を取得する方法はありますが、powershellで名前の一部を切り捨てる方法はありますか?
- 28. カンマ区切りでcsvセルのデータをnumpy配列に変換
- 29. Python csvで列の一部を切り捨てます
- 30. C#で部分文字列の後に残りの文字列を切り取る方法は?
「* .csv」を検索すると、すべてのファイルをスケーラブルに処理できます。 xargs cut -d、-f2,3> out.csv – pixelbeat
コンマを取り除いたり、別のものに変更したい場合は、 'cut'の' --output-delimiter = STRING'オプションを使用することができます。 –
この答えの主な問題は、 'cut'は区切り文字を含む引用符付きフィールドを処理しないということです。 CSVファイルにこのようなデータがある場合は、別のものを使用する必要があります。 –