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
.
Вы можете использовать awk
с двойной кавычкой в качестве разделителя полей и заменить ,
на ;
только для нечетных полей (1,3,5 и т. д. ).
awk 'BEGIN{OFS=FS="\""} {for (i=1;i<=NF;i=i+2) gsub(/,/,";",$i)}1' file
Здесь сделаны некоторые предположения, например, что изначально в полях нет ;
, нет встроенных/экранированных "
внутри двойных кавычек, но ввод простой, как в примере.
Для работы в более сложных случаях GNU awk предоставляетFPAT
решение для CSV-файлов, которое эффективно в большинстве случаев, исключая такие случаи, как перевод строки в поля. Если этот cvs нельзя считать таким же простым, как в примере, то требуется программа, использующая библиотеку для разбора cvs.
How can I change from comma-delimited to semi-colon delimited but don't change the commas that are in between quotes?
Вы можете использовать csvtool
. Он уже упакован для многих дистрибутивов. Обработка формата csv с помощью регулярных выражений может быть сложной и подверженной ошибкам.
$ csvtool -t ',' -u ';' col 1- input.csv > output.csv
С GNU awk для FPAT:
$ awk -v FPAT='[^,]*|"[^"]+"' -v OFS=';' '{$1=$1}1' file
123;456;"ABC,DEF"
Если вам нужно больше, см.https://stackoverflow.com/questions/45420535/whats-the-most-robust-way-to-efficiently-parse-csv-using-awk