Я использую рабочую конфигурацию:
# Yank to copy text with y.
bind-key -t vi-copy y copy-pipe "tmux save-buffer - | xclip -sel clipboard -i"
# Update default binding of `Enter` to also copy with this method.
unbind -t vi-copy Enter
bind-key -t vi-copy Enter copy-pipe "tmux save-buffer - | xclip -sel clipboard -i"
# Toggle rectangular copy mode.
bind-key -t vi-copy 'C-v' rectangle-toggle
# Bind ']' to paste.
bind ] run "tmux set-buffer \"$(xclip -o -sel clipboard)\" && tmux paste-buffer"
# Toggle rectangular copy mode.
bind-key -t vi-copy 'C-v' rectangle-toggle
# http://askubuntu.com/a/507215/413683
set -g set-clipboard off
Если вы можете обойтись соответствием строки, а не совпадением регулярного выражения
awk 'BEGIN {RS="---\n"; ORS=""} {print > sprintf("xx%02d", NR)}' in
С GNU awk (по крайней мере, в v4.0.1) это можно использовать регулярное выражение для RS
, например
gawk 'BEGIN {RS="-+\n"; ORS=""} {print > sprintf("xx%02d", NR)}' in
Поскольку вы, похоже, используете gnu csplit
, это довольно просто:
csplit --suppress-matched infile /PATTERN/ '{*}'
т.е. используйте - suppress-matched
, чтобы подавить строки, соответствующие PATTERN
.
Согласно вашему примечанию, этот параметр доступен только в более поздних версиях csplit
( coreutils
≥ 8,22)
perl -ne 'BEGIN { $fnum=0; open $fh, ">", sprintf "xx%02d", $fnum++ } if (m/-/) { open $fh, ">", sprintf "xx%02d", $fnum++ } else { print $fh $_ }' inputfileorfileshere
Или аналогичную строку reopen-into-new-file-on-matching-Соответствующая через awk
или что-то еще.