Если вы не слишком суетитесь по поводу белого пространства, вы делаете это с двумя правилами неловкости, как это:
awk '$1 { printf "\n" $0 } !$1 { printf OFS $7 }' FS=, OFS='|' infile
Это оставляет пустую строку во главе вывода, и пропускает один в конце. Чтобы исправить это, добавьте , если
и END
предложения:
awk '$1 { if(NR>1) printf "\n"; printf $0 } !$1 { printf OFS $7 } END { printf "\n" }' FS=, OFS='|' infile
Output:
ABC,SSSD,12345,NSS,12345,xxx,TS11|TS21|TS22|BS26|GPRS
ABC,SSSD,12356,NSS,12356,xxx,TS11|TS21|TS22|GPRS|BS26
Как отметил Гленн в комментариях, если строки содержат %
, безопаснее вызвать printf
с форматом последовательности, например:
awk '$1 { if(NR>1) printf "\n"; printf "%s", $0 } !$1 { printf OFS"%s", $7 } END { printf "\n" }' FS=, OFS='|' infile
-121--67877-
Если количество объединяемых строк является постоянным, awk
может просто решить, какой тип линии это тип, посмотрев на номер строки:
$ awk -F, '1==NR%5 { printf $0 "|";next } { printf $7 (NR%5?"|":"\n") }' DATA
ABC,SSSD,12345,NSS,12345,xxx,TS11|TS21|TS22|BS26|GPRS
ABC,SSSD,12356,NSS,12356,xxx,TS11|TS21|TS22|GPRS|BS26
-121--67878-
Альтернативой для shelr.tv (которая была отличным вариантом, и может в конечном итоге снова оказаться) является showterm , который вы можете самостоятельно разместить или использовать как есть.
Конвертируйте в видео, как вы считаете нужным, но это не прямой ответ на видео.
Я начал сталкиваться с той же проблемой, но не знаю, почему. Однако предложенное решение tmux >= 2.5 вhttps://unix.stackexchange.com/a/131187/44909решает проблему для меня. В частности, сделайте так, чтобы ваш .tmux.conf
имел:
bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel 'xclip -in -selection clipboard'
Кажется, бит -and-cancel
делает это. Если я просто использую copy-pipe
, это не сработает.
Если для параметра set-clipboard
установлено значение on
илиexternal
(по умолчанию )и ваш терминал поддерживает OSC 52, тогда copy-pipe
также отправит скопированные данные на ваш tty, используя escape-последовательность xterm для установки выбор. tmux правильно отправляет весь скопированный текст, но ваш терминал может иметь ограниченный размер буфера -для приема данных. Это упоминается в tmux #1119 .
Иногда это может срабатывать, потому что вызов xclip
помещается в фоновый режим и может завершиться после встроенной операции настройки -в буфере обмена. Кроме того, это могло начать происходить недавно, если вы обновили свой терминал и реализовали поддержку OSC 52 (, например. готовность).
Ваши варианты::
set-option -g set-clipboard off
в конфигурацию tmux copy-pipe
ключевые слова :буфер обмена tmux усечен, tmux не копирует все символы, копия tmux усечена