Зш, разбивка расширения %~

Вот более простой способ сделать это:

awk '{print $3," "$2,"   "$1}' file

Он просто использует awkдля печати столбцов 3, 2 и 1 с двумя пробелами между 3-м и 2-м столбцами и четырьмя пробелами между 2-м и 1-м столбцами.

Выход:

####  january    400
####  april    304
####  may    151
####  june    126
####  august    115
####  december    98

Если вы хотите отредактировать файл на месте, используйте эту команду:

awk -i inplace '{print $3," "$2,"   "$1}' file
1
05.04.2020, 13:06
1 ответ

Вы пытаетесь использовать экранирование приглашения вне контекста, в котором обычно оцениваются экранирование приглашения. поэтому переменная содержит строку %3~, вы пытаетесь разделить строку %3~, что приводит к %3~, и я предполагаю, что позже она будет присвоена PS1/ PROMPT, которая затем расширяется zsh %3~.

Если вы хотите выполнить раскрытие параметров и обработать строку %3~как побег подсказки, вы можете использовать флаг раскрытия параметра %следующим образом${(%)a}

2
28.04.2021, 23:18

Теги

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