私は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. 動的文字列を切り取る方法
- 2. 区切りを使用してCSV引用文字列CSVファイルをPerlで区切ります。
- 3. IF文を使用してCSVの値を列に取り込む方法
- 4. 昏睡区切り文字列をcsvに変換する
- 5. 列の値を列に切り替える方法は?
- 6. CSVまたはタブ区切りファイルをMySQLのマルチテーブルデータベースにマップする方法
- 7. bashのファイルからバージョン文字列を抽出して切り取る方法
- 8. 文字列の先頭から文字を切り取る方法。 Android
- 9. C#で部分文字列の後に残りの文字列を切り取る方法は?
- 10. UNIXでcsvの空白を取り除く方法
- 11. C#テキストボックスの問題、テキストボックスの値を切り取る方法
- 12. WPFグリッドの列の可視性を切り替える方法
- 13. 他のビットマップからビットマップを切り取る方法
- 14. vb.netのWindowsアプリケーションで数字を切り取る方法は?
- 15. R(パッケージHmisc)のVARCLUSで樹形図を切り取る方法
- 16. コンマ区切りの列から値を見つける方法
- 17. 列のCSV値の一致方法
- 18. Unix:文字列を正規表現の区切り文字で切り取る
- 19. perlでハッシュを使ってtxtを切り取る方法は?
- 20. 別の文字列を使ってRubyで文字列を切り取る方法は?
- 21. iPhoneサークル内で円を切り取る方法は?
- 22. コンマ区切りファイルから値を読み取る方法は?
- 23. Gitリポジトリを縮小/切り取る方法
- 24. 形状ごとにpng画像を切り取る方法は?
- 25. Androidでズームイン画像を切り取る方法
- 26. 区切り文字列をNSArrayに分割する方法
- 27. Pythonでpandasを使用して列名でCSVを読み取る方法は?
- 28. SEDは、SEDと千のスペース区切りを取り出す方法があります文字列のみ
- 29. ハイブクエリcsvテキスト区切り文字
- 30. Javaで単語を切り取らずに部分文字列を取得する方法は?
「* .csv」を検索すると、すべてのファイルをスケーラブルに処理できます。 xargs cut -d、-f2,3> out.csv – pixelbeat
コンマを取り除いたり、別のものに変更したい場合は、 'cut'の' --output-delimiter = STRING'オプションを使用することができます。 –
この答えの主な問題は、 'cut'は区切り文字を含む引用符付きフィールドを処理しないということです。 CSVファイルにこのようなデータがある場合は、別のものを使用する必要があります。 –