Если по какой-то причине вам нужно отсортировать по только содержимое первой пары фигурных скобок, самый простой способ, вероятно, — это декорировать -сортировать -недекорировать шаблон . Я собираюсь использоватьsed
и cut
, но есть много вариантов, чтобы это работало в оболочке:
sed -e 's/^\([^{]*{\([^}]*\)}\)/\2 \1/' < data|sort|cut -d' ' -f2-
Команда sed
заменяет все до конца первой пары фигурных скобок содержимым фигурных скобок, пробелом, а затем исходной строкой. Это можно отсортировать как обычно. Затем я снова cut
проверяю поле, которое добавил в начале.
Это довольно хорошо обработает нечетные символы в ключе и неравномерную длину, хотя пробелы будут проблемой, как и экранированные \}
. При необходимости можно использовать другой сепаратор.
Если данные:
\newacronym{A}{EX}{Expanded}
\newacronym{F}{EX}{Expanded}
\newacronym{D}{EX}{Expanded}
\newacronym{C}{EX}{Expanded}
\newacronym[abc]{B}{EX}{Expanded}
\newacronym{CD}{EX}{Expanded}
\newacronym[def]{E}{EX}{Expanded}
, то команда sed
приводит к:
A \newacronym{A}{EX}{Expanded}
F \newacronym{F}{EX}{Expanded}
D \newacronym{D}{EX}{Expanded}
C \newacronym{C}{EX}{Expanded}
B \newacronym[abc]{B}{EX}{Expanded}
CD \newacronym{CD}{EX}{Expanded}
E \newacronym[def]{E}{EX}{Expanded}
а остальное просто.
Предостережения:
tmux
Добавьте это в свой~/.tmux.conf
:
###############################################
## Last command line + Home
bind -n 'C-a' send-keys Up \; send-keys Home
Перезагрузить конфигурацию tmux
tmux source-file ~/.tmux.conf
Затем, когда вы нажмете Ctrl+a
, bash
получит Up
, а затем Home
.