Skip to content

Instantly share code, notes, and snippets.

@kyanny
Last active August 29, 2015 14:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kyanny/48d008b6c2d0bdc46854 to your computer and use it in GitHub Desktop.
Save kyanny/48d008b6c2d0bdc46854 to your computer and use it in GitHub Desktop.
csvcol
#!/usr/bin/env emacs --script
(setq usage "\
Usage:
$ csvcol file.csv 1 2 3
$ csvcol file.csv 4, 5, 6
$ csvcol file.csv 7,8,9
")
(require 'package)
(setq package-enable-at-startup nil)
(package-initialize)
(require 'cl)
(require 'csv-mode)
(if (<= (length command-line-args-left) 1)
(princ usage)
(progn
(find-file (car command-line-args-left))
(setq text (buffer-string))
(setq fields (cdr command-line-args-left))
(setq fields (mapcan (lambda (field)
(split-string field "[^0-9]"))
fields))
(setq fields (remove-if (lambda (field)
(string= "" field))
fields))
(setq fields (mapcar 'string-to-number fields))
(with-temp-buffer
(insert text)
(csv-kill-fields fields (point-min) (point-max))
(erase-buffer)
(csv-yank-as-new-table)
(princ (buffer-string)))))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment