Нет истории в оболочке zsh

Для этих целей очень удобен Awk.

#!/usr/bin/awk -f

$5 == "CHANGE_STATUS" && $7 == "STARTING" {
    start[$9] = $1 " " $2
}

$5 == "CHANGE_STATUS" && $7 == "SUCCESS" {
    print $9,start[$9],$1,$2
}

$n — n-й --й столбец. Я просто сохраняю дату начала и печатаю все, как только нахожу дату окончания задания. (Сохраните код в исполняемый файл и вызовите его, передав входной файл в качестве аргумента. )./script input.txt

Если вам абсолютно необходимо встроить его в скрипт Bash, просто сделайте что-нибудь вроде:

awk '
    $5 == "CHANGE_STATUS" && $7 == "STARTING" {
        start[$9] = $1 " " $2
    }

    $5 == "CHANGE_STATUS" && $7 == "SUCCESS" {
        print $9,start[$9],$1,$2
    }
' input_file_or_whatever

но будьте осторожны с тем, что вы делаете с одинарными кавычками в самом скрипте Awk. Это может быть немного сложно.

1
30.10.2019, 17:08
1 ответ

По умолчанию Zsh имеет минималистическую конфигурацию, которая не включает приятных функций, таких как сохранение истории команд между сеансами. Эта и другие функции доступны, но отключены по умолчанию.

В зависимости от того, как настроена ваша операционная система, она может отобразить экран конфигурации(zsh-newuser-install)в первый раз. Если это не так, или чтобы запустить его снова, см. Запустите мастер первого использования Zsh

.

На первом -экране конфигурации времени выберите (1) Configure settings for history, измените настройки, если хотите, затем (0) Remember edits and return to main menu. Пока вы это делаете, активируйте чувствительное завершение команды -с помощью (2) Configure the new completion system.и либо (1) Turn on completion with the default options., либо (2) Run the configuration tool (compinstall). Также активируйте некоторые основные функции в (4) Pick some of the more common shell options:. Я рекомендую включить autocd, extendedglob. Наконец, выберите (0) Exit, saving the new settings..

Если вы предпочитаете выполнять настройку вручную, вам необходимо установить как HISTFILE, так иSAVEHISTи, возможно, вы также захотите увеличить HISTSIZE. Эти настройки находятся в файле .zshrcв вашем домашнем каталоге.

# Save history between sessions
HISTSIZE=10000
SAVEHIST=$HISTSIZE
HISTFILE=~/.zsh_history

# Turn on some useful options
setopt auto_cd
setopt extended_glob

# Activate context-sensitive completion
autoload -Uz compinit
compinit

Вот еще несколько основных настроек, которые не охватываются первым -экраном конфигурации времени.

  • Предотвращение случайной перезаписи файла с перенаправлением вывода или с mvили cp.
  • Сделайте доступной функцию переименования массы -zmv.
  • Подсказка по умолчанию по умолчанию является пресной и неинформативной. Для начала вот приглашение, которое показывает последние 3 компонента текущего каталога и статус предыдущей команды, если она не удалась.
# Prevent against accidentally overwriting files
setopt no_clobber
alias cp='cp -i'
alias mv='mv -i'

# Rename, copy or link files based on patterns.
autoload -U zmv
alias zcp='noglob zmv -C'
alias zln='noglob zmv -L'
alias zmv='noglob zmv'

# Prompt
PS1='%B%(?,,[%?] )%3~%# %b'
1
27.01.2020, 23:40

Теги

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