Как вставить в файл только вставки и модификации, оставив там неизмененные строки?

Мне никогда не нравилось решение TMOUT. Во-первых, потому что это работает только в том случае, если вы покидаете сеанс по подсказке; если вы оставите его внутри Vim или даже в запросе пароля sudo, время ожидания не истечет. А во-вторых, я не хочу, чтобы сессия была закрыта, я хочу, чтобы она была заблокирована, как это делают графические среды.

Экран GNU может блокироваться после периода бездействия, поэтому я сделал следующее. В самом начале моего ~/.bashrcя добавил это:

if [ "$TERM" = "linux" ] && tty | egrep -q '^/dev/tty[[:digit:]]+$'
then
    exec screen -c ~/.ttyscreenrc
fi

execважен, потому что он гарантирует, что screenзаменит Bash, и когда он завершится, сеанс TTY будет закрыт.

И в ~/.ttyscreenrcя поместил это:

startup_message off
idle 180 lockscreen

Чтобы пропустить экран приветствия и заблокировать экран через 3 минуты бездействия.

0
03.05.2020, 11:29
1 ответ

Предположим, что ваш исходный файл — data, а ваш файл обновлений — updates, этот короткий код удовлетворит ваше требование

awk '{ h[$1] = $0 } END { for (i in h) { print h[i] } }' data updates

awkкод разбит на строфы:

{ h[$1] = $0 }                         # save each line, keyed by first element, overwriting as necessary
END { for (i in h) { print h[i] } }    # when we have read everything, print each element in the array
2
28.04.2021, 23:16

Теги

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