я пытаюсь подсчитать общее количество пользователей, которых я создал в Linux. Я нашел скрипт, который работает, я использую этот метод, если uid 1000+, то это кто-то, кого я создал. однако это было неправильно, мое общее количество пользователей должно быть 4, но указано как 5 из этого сценария. Я опубликую скриншот. Я знаю, как подсчитать общее количество пользователей, включая пользователей системы: getent passwd | туалет -л
awk -F: '$3 >= 1000 { C++ } END { print C+0 }' /etc/passwd
@Bodo я поместил код в тег блока.
Если вы перечитаете мой комментарий, вы можете обнаружить, что я попросил входной файл, который в настоящее время связан только как снимок экрана.
@ArnaudValmary awk -F: '$3 >= 1000 {C++} PRINT {print C+0}' /etc/passwd Нравится?
@Bodo, но это не входной файл, а выходной файл, результат скрипта.
@Svimmel Код ясно показывает, что /etc/password
является входным файлом для команды awk
. Вы должны скопировать и вставить его как текст вместо ссылки или встраивания снимка экрана. Результатом является число, которое упоминается в тексте вашего вопроса.
@Bodo Бодо, я не думаю, что вы можете скопировать из оболочки терминала Virtualbox, поэтому я сделал снимок экрана, вы же не ожидаете, что я все это напишу, не так ли? и я думаю, что у нас с вами разные взгляды на ввод/вывод. Для меня ввод — это то, что вы вводите, а вывод — это результаты того, что вы вводите. Как в калькуляторе, я ввожу 3 + 3, а вывод — 6, например.
Я не знаю, можете ли вы копировать и вставлять данные со своей виртуальной машины, но есть разные способы копирования данных, например. с помощью общей папки, сетевого диска или scp
(или WinSCP). Нет, вам следует избегать повторного ввода вашего кода/данных/ошибок или любого другого текста, относящегося к вопросу, потому что это может привести к возникновению или непреднамеренному исправлению ошибок. Вы просите помощи у людей, которые жертвуют своим временем, поэтому вы несете ответственность за то, чтобы нам было легко помочь вам. Мы не можем скопировать и вставить ваш снимок экрана, чтобы проанализировать проблему или протестировать предлагаемое решение. Вы ожидаете, что мы перепечатаем ваши данные со скриншота?
@ Бодо, ты совершенно неправильно понял. Этот снимок экрана является РЕЗУЛЬТАТОМ, а не «сценарием». Вы ничего не можете с этим поделать. Код в блоке, который вы должны скопировать и вставить в терминал Linux, чтобы получить ЭТО результат. Вы буквально неправильно поняли вопрос. Зачем копипастить РЕЗУЛЬТАТ...
И вы, видимо, не читали текст, объясняющий почему нельзя загружать изображения всего, что по сути является текстом.. Файл /etc/password
является входным файлом для вашей команды, и на скриншоте ясно видно что-то похожее на /etc/password
. Конечно, я не знаю, действительно ли он показывает этот файл. Суть в том, что вы должны копировать и вставлять любой текст как текст, независимо от того, является ли он кодом, вводом, выводом, сообщением об ошибке или любым другим текстом, связанным с вашим вопросом. Я проголосовал за вопрос сейчас и проголосовал за его закрытие.
Вместо того, чтобы прилагать усилия для спора, вы должны улучшить вопрос в соответствии с просьбой. Мы можем использовать содержимое вашего файла /etc/passwd
, чтобы воспроизвести проблему и протестировать предлагаемое решение. Ожидание предоставления любого текста в виде текста справедливо и для вывода. Конечно, мы можем что-то сделать с вашим выводом: мы можем использовать такие инструменты, как diff
, чтобы сравнить наш вывод с вашим. Это может помочь нам помочь вам.
Добавьте ; print
сразу после C++
, чтобы контролировать, каких пользователей касается ваш фильтр:
awk -F: '$3 >= 1000 { C++; print } END { print C+0 }' /etc/passwd
Вывод содержит:
nobody
mahandri
kingfoolish
Benteiversen
Geirgjerde
У вас есть 5 пользователей с UID >= 1000 в вашем файле
passwd
. Пятый — специальный пользовательnobody
с UID = 65534. Используйте команду; print
сразу послеC++
, чтобы увидеть их