Парсинг CSV легко не сделан с инструментами POSIX только, если Вы не используете упрощенный вариант CSV без заключения в кавычки (так, чтобы запятые не могли появиться в поле). Даже затем эта задача не кажется легкой сделать с awk или другой обработкой текста к инструменту. Можно использовать Perl с Text::CSV
, Python с csv
, R с read.csv
, Ruby с CSV, … (Все они являются частью стандартной библиотеки соответствующего языка за исключением Perl.)
Например, в Python:
import csv, sys
rows = list(csv.reader(sys.stdin))
writer = csv.writer(sys.stdout)
for col in xrange(0, len(rows[0])):
writer.writerow([row[col] for row in rows])
tmux 1.8, добавленный -e
опция к capture-pane
; использование этой новой опции заставляет собранные данные включать эффективные escape-последовательности.
bind H capture-pane -e \; save-buffer ~/tmux.hardcopy \; delete-buffer
(Можно опустить -b 0
так как буферный 0 является буфером по умолчанию, если Вы не указаны.)