Как по умолчанию перечислить окна tmux в свернутом виде?

AWK - вполне приличный инструмент для таких целей. Вот пример выполнения кода:

$ awk 'NR == 1 {print} NR != 1 && $0!~/ID  Data1  Data2/' rmLines.txt | head -n 10                                
ID  Data1  Data2
1    100    100
     100    200
3    200    100
1    100    100
     100    200
3    200    100
1    100    100
     100    200
3    200    100

Break down:

  • NR == 1 {print} говорит нам о печати первой строки текстового файла
  • NR != 1 && $0!~/ID Data1 Data2/ логический оператор && говорит AWK о печати строки, которая не равна 1 и не содержит ID Data1 Data2. Обратите внимание на отсутствие части {print}; в awk, если условие теста оценивается как true, предполагается, что строка будет напечатана.
  • | head -n 10 - это просто небольшое дополнение для ограничения вывода только первыми 10 строками. Не имеет отношения к самой части AWK, используется только для демонстрации.

Если вы хотите получить это в файле, перенаправьте вывод команды, добавив > newFile.txt в конце команды, например так:

awk 'NR == 1 {print} NR != 1 && $0!~/ID  Data1  Data2/' rmLines.txt > newFile.txt

Как это работает? Довольно неплохо:

$ time awk 'NR == 1 {print} NR != 1 && $0!~/ID  Data1  Data2/' rmLines.txt > /dev/null                            
    0m3.60s real     0m3.53s user     0m0.06s system

Side note

Сгенерированный пример файла был сделан с помощью цикла от единицы до миллиона и печати первых четырех строк вашего файла (так что 4 строки умножить на миллион равно 4 миллионам строк), что, кстати, заняло 0.09 секунды.

awk 'BEGIN{ for(i=1;i<=1000000;i++) printf("ID  Data1  Data2\n1    100    100\n     100    200\n3    200    100\n");  }' > rmLines.txt
0
14.12.2018, 19:14
1 ответ

Prefix+ w запускает choose-tree -Zw. Из tmux (1):

choose-tree [-GNswZ ] [-F format ] [-f filter ] [-O sort-order ] [-t target-pane ] [template ]

Put a pane into tree mode, where a session, window or pane may be chosen interactively from a list. -s starts with sessions collapsed and -w with windows collapsed. -Z zooms the pane.

Так что с настройками по умолчанию окна уже свернуты (т.е. вы не можете видеть отдельные панели в исходном виде ).

Если вы хотите, чтобы первоначальный вид был еще больше свернут, вы можете повторно связать его, используя -s, чтобы каждый сеанс получал только одну строку.

bind-key 'w' choose-tree -Zs

Флаг -Zпоявился в tmux 2.7. Если вы используете версию 2.6, привязка была просто choose-tree -w, поэтому вам следует изменить ее на choose-tree -s.

2
28.01.2020, 04:07

Теги

Похожие вопросы