Как просмотреть всех зарегистрированных пользователей в Alpine Linux?

Одним из способов использования POSIXly может быть:

sed -e '
    /./!d
    $ba
    N
    /\n$/!{H;s/.*//;x;D;}
    :a;s/\n//g
' input.txt

Вход:

% cat -ne input.txt
 1  $
 2  $
 3  john,$
 4  5901,$
 5  open$
 6  $
 7  $
 8  $
 9  lina,$
10  2401,$
11  open$
12  $
13  jody,$
14  5401,$
15  open$

Выход:

john,5901,open
lina,2401,open
jody,5401,open

Пояснение:

  • Всякий раз, когда sedвидит не -пустую строку (, подойдет любой символ, даже пробел ), он начинает добавлять его в пространство шаблонов и считывает следующую строку.
  • Теперь, если самая правая часть пространства шаблонов, что означает, что текущая строка, считанная в пространство шаблонов, является пустой или последней строкой, то мы переходим к метке :a, в которой мы быстро удаляем новые строки из пространства шаблонов и распечатать на стандартный вывод.
  • И в случае, если только что прочитанная строка не является абсолютно пустой, после добавления в пространство шаблонов, /\n$/, мы возвращаемся назад и добавляем следующую строку. Это мы делаем с помощью команды D, которая передает управление в начало кода sed. Но перед этим он очищает все до первой новой строки в пространстве шаблонов. с этим мы справимся, поместив артефакт \nна H;s/.*//;x.
1
28.07.2020, 01:10
1 ответ

Программа whoявляется частью пакета coreutils. Вы можете использовать apk add coreutilsдля его установки:

# which who
#

# apk add coreutils
fetch http://dl-cdn.alpinelinux.org/alpine/v3.11/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.11/community/x86_64/APKINDEX.tar.gz
(1/3) Installing libacl (2.2.53-r0)
(2/3) Installing libattr (2.4.48-r0)
(3/3) Installing coreutils (8.31-r0)
Executing busybox-1.31.1-r8.trigger
OK: 7 MiB in 17 packages
#

# which who
/usr/bin/who
#
5
18.03.2021, 23:16

Теги

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