История с файлом bash

Команда awk - не самый подходящий инструмент для этой работы. Используйте команду cut, которая принимает в качестве аргумента символьные позиции полей, которые вы хотите извлечь. Поэтому в вашем примере укажите, что USERS начинается с позиции 1 и заканчивается позицией 8, а rslt начинается с позиции 33.

$ cut -c 1-8,33- input.txt
   USERS rslt
    usr1  B
    usr2  C
    usr3
    usr4  A
    usr5
    usr6  A
    usr7

О том, как считать позиции символов, см. следующее.

         1         2         3         
123456789012345678901234567890123456789
   USERS        position   ref   rslt   
    usr1                    X     B   
    usr2          2980            C   
    usr3          3323      P      
    usr4                          A  
    usr5          5251      U      
    usr6          9990            A
    usr7          10345     T      
2
10.08.2017, 01:35
2 ответа

Как прокомментировал @Jesse _b, .bash_historyсодержит историю всех ваших предыдущих сеансов оболочки, кроме текущего, который можно просмотреть с помощью команды history. Так что вам придется сначала сбросить текущую историю через

history -a

, а затем вы можете скопировать его в другой файл:

cp ~/.bash_history $path/filename.txt   

Чтобы перед каждой записью в истории стояла метка времени, установите переменную $HISTTIMEFORMAT, например.

HISTTIMEFORMAT="%F %T: "
4
20.08.2021, 11:34

Чтобы получить дату и время в вашей истории, выполните следующие команды:

HISTTIMEFORMAT="%d/%m/%y %T "
echo 'export HISTTIMEFORMAT="%d/%m/%y %T "' >> ~/.bashrc
source ~/.bashrc
history

Как увидеть метки времени в истории bash

Почему это не дает мне полной истории?

См. ответ @michael -homer

If you want to make sure that they're always written immediately, you can put that command into your PROMPT_COMMAND variable:

export PROMPT_COMMAND='history -a'
1
20.08.2021, 11:34

Теги

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