Это не действительно unixy вопрос, но в любом случае, я рекомендовал бы использовать что-то другое от less
для просмотра файлов CSV. Это не действительно правильный инструмент. Попробуйте что-то как R
, который имеет хорошую поддержку взгляда на и при необходимости, работающий с файлами CSV. Например, считать 5 строк файла CSV, сделать
$ R
> read.csv("pheno.csv",nrows=5)
faid expid pid mid sex pheno
1 1420 NA12003 0 0 1 0
2 1420 NA12004 0 0 2 0
3 1420 NA10838 9 10 1 0
4 1420 NA12005 0 0 1 0
5 1420 NA12006 0 0 2 0
Посмотрите
> help(read.csv)
для справки.См. также
> help(write.csv)
для записи в файл и т.д.
Править: У меня, оказалось, был файл CSV, который является 1.1G и является 934 991 строкой долго.
$ time Rscript -e 'read.csv("GenomeWideSNP_6.na29.annot.csv", skip=500000, nrows=5, header=FALSE)'
Это пропускает 500 000 строк и читает 5 строк. R занимает 1 минуту для возврата этого и достигает высшего уровня в 620M использование (!), похоже, что это может читать пропущенные строки в память, хотя это не имеет никакого смысла.
Результат: я не действительно поклонник R, но для обработки малых и средних наборов данных, особенно если Вы хотите сделать статистические анализы ее, Вы могли бы сделать хуже, чем R. Альтернативой является Python и некоторый csv обработка библиотеки.
Это зависит от значения history-limit
то, что Вы начались Ваш .tmux.conf
- значение по умолчанию является 2000; если Вы хотите получить больше, то необходимо будет явно определить номер строк.
Для получения всего scrollback перейдите к режиму копии, выберите весь scrollback, и дергайте его в буфер, затем вставьте его в файл.
Как Вы выполняете, это будет зависеть от mode-keys
опция Вы предпочитаете, vi или emacs. man tmux
имеет полезную таблицу, описывающую соответствующие ключи.
У меня есть следующее в моем .tmux.conf
упростить это:
unbind [
bind Escape copy-mode
unbind p
bind p paste-buffer
bind-key -t vi-copy 'v' begin-selection
bind-key -t vi-copy 'y' copy-selection
Процесс для получения полного scrollback затем:
PrefixEsc: переходить к режиму копии
v: начать визуальный выбор (принимающий Вас уже внизу экрана),
строительное стекло: получать все в scrollback
y: дергать его в буфер
Prefixc: откройте другое tmux окно
vim scrollback.txt
i: введите режим вставки в энергию
Prefixp: вставка в файл
Существует также ответ, здесь описывающий, как скопировать буфер во временное использование файла xsel
это могло бы быть полезно.
С tmux 1.5, capture-pane
команда принимает -S
и -E
указывать запуск и строки конца получения; отрицательные величины могут использоваться для определения строк из истории. После того как у Вас есть данные в буфере, можно сохранить их с save-buffer
.
Вот привязка в качестве примера (подходящий для .tmux.conf
) это оборачивает все это подсказкой для имени файла:
bind-key P command-prompt -p 'save history to filename:' -I '~/tmux.history' 'capture-pane -S -32768 ; save-buffer %1 ; delete-buffer'
Это получает до () 32 768 строк истории плюс в настоящее время отображаемые строки. Начиная с tmux 1.6, можно использовать числа вниз для INT_MIN, если область имеет историю, которая глубже, чем 32Ki строки (обычно строки на 2 Гб). Начиная в tmux 2.0, можно использовать capture-pane -S -
для значения “запускаются в начале истории” (т.е. никакое большое, трудно кодированное отрицательное число).
Примечание: Количество строк в сохраненном файле не всегда будет равно пределу истории области плюс своя высота.
Когда буфер истории области полон, tmux отбрасывает самые старые 10% строк вместо того, чтобы отбросить всего одну строку. Это означает, что эффективная глубина истории области иногда будет всего 90% своего настроенного предела.
-S
кому: capture-pane
(это, кажется, 1.3-2, хотя это от dpkg
, поскольку я не могу выяснить, как заставить tmux показывать мне номер версии …)
– David Wolever
12.12.2011, 07:40
tmux server-info | head -1
видеть Вашу версию. tmux -V
работы в tmux* 1.4 и позже. дорогой thinice
– Chris Johnsen
12.12.2011, 10:03
[PrefixKey] :
чтобы добраться до tmux командной строки и затем вставить целую строку, затем Вы просто делаете a [Prefix] P
это - капитал P, и Вы хороши пойти.
– Ali
17.12.2013, 23:43
У меня были стандартные привязки клавиш, которые, казалось, несколько отличались, чем в ответе @jasonwryan и ничего не изменили в конфигурации.
Ниже рецепт, который работал на меня. Возможно, Вы найдете это полезным, если Вы не захотите вносить какие-либо изменения в tmux, конфигурируют и просто хотят быстро скопировать некоторые scrollback.
Префикс == Ctrl+b в моем tmux (tmux 1.6, debian 7).
Вот плагин tmux, который включает следующее:
https://github.com/tmux-plugins/tmux-logging
После установки сохраните весь прокручиваемый текст с помощью префикса + alt-shift-p
.
Для тех, кто ищет простой ответ, просто используйте префикс + : , затем введите панель захвата -S -3000
+ return (Замените 3000
тем количеством строк, которое вы хотите сохранить.) Это копирует эти строки в буфер.
Затем, чтобы сохранить буфер в файл, просто используйте префикс + : еще раз и введите save-buffer filename.txt
+ ] return , заменив filename
на что угодно.
(По умолчанию префикс равен ctrl + b .)
На самом деле это очень просто. Войдите в командный режим, нажав prefix key
, затем :
. Затем выполните capture-pane -S -<line number you want to dump>
Тогдаsave-buffer <filepath>
Этот файл содержит весь вывод прокрутки. После этого вы должны удалить буфер из соображений безопасности.
Если вы хотите запустить что-то из командной строки (вместо использования префиксных ключей tmux ), попробуйте запустить:
tmux capture-pane -pS -1000000
Если вы запустите его и вам покажется, что он ничего не делает, это потому, что он выводит именно то, что только что было на вашем экране, поэтому он выглядит так же.
Конечно, вы также можете передать его в файл:
tmux capture-pane -pS -1000000 > file.out
См. справочную страницу tmux
и найдите capture-pane
, чтобы узнать больше о том, что вы можете сделать (, например, захватить escape-последовательности, если вы хотите сохранить цвет, или указать, хотите ли вы, чтобы несколько визуальных строк соединялись, когда они не содержать новой строки)
How can I write all the scrollback in a tmux session to a file?
Я использую это в своем~/.tmux.conf , и теперь, когда я выхожу из работающей оболочки, вывод панели сохраняется в уникальный файл журнала:
set -g remain-on-exit
set-hook pane-died 'capture-pane -S - -E - ; save-buffer "$HOME/logs/tmux/tmux-saved.#{host_short}-#{session_id}:#{window_id}:#{pane_id}-#{pane_pid}-#{client_activity}.log"; delete-buffer; kill-pane'
Записать всю прокрутку в tmux:
tmux capture-pane -pS - > file
где ‘-’ to -S is the start of the history
, как написано в мануале.
Для всех панелей в сеансе вы можете просмотреть все панели с помощью tmux list-panes -s...
.
Дамп в файл и автоматическое открытие файла вvim
Это мило:
bind-key v 'capture-pane' \; \
capture-pane -S - \; \
save-buffer /tmp/tmux \; \
delete-buffer \; \
send-keys Escape 'ddivim /tmp/tmux' Enter
Предполагается, что ваша оболочка находится в режиме vi , так что:
dd
удаляет любую существующую команду i
переходит в режим вставки vim /tmp/tmux
Протестировано в tmux 3.0.
:set paste
в энергии энергия проигнорирует добавляющие автоматические добавления отступа, или любой вставляет - базирующиеся привязки клавиш. – tlunter 04.02.2015, 23:18.tmux.conf
... – jasonwryan 05.11.2015, 19:14