Как объединить несколько строк в одну строку, начинающуюся с определенного текста

Ваша интерпретация верна.

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

Поскольку этот пользователь root, он будет в /root/.bash _истории

Для других пользователей это будет /home/username/.bash _история

Если они запускали привилегированные команды, это может быть в /var/log/secure, однако, поскольку они являются пользователем root, скорее всего, нет, поскольку им не нужно использовать sudo.

-1
27.10.2020, 19:44
1 ответ

Сawk:

awk 'BEGIN{ ORS="" }
  FNR>1 && /^P22200I/{ printf "\n" }
  1
  END{ printf "\n" }
' file

Установите в качестве разделителя выходных записей пустую строку (по умолчанию\n)и напечатайте новую строку, если текущая строка не является первой строкой и строка начинается с P22200I. Затем напечатайте текущую строку (1).
Напечатайте еще одну новую строку, когда будет достигнут конец файла.

Выход:

P220002009034028180002          SSM      200903
P22200I2004220000     0408832000000000 P222500903200000015{ P22261000005500000 
P22200I2008660000    8532818700000000 P22467809000033336{ P2298320000550000 P22230Y000003Va0    000000 0000000000 0000000000997  000000000000     Z N2 
0
18.03.2021, 22:54

Теги

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