Для этих целей очень удобен 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. Это может быть немного сложно.
По умолчанию 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
. # 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'