Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Linux中显示计算机上的最短用户名和最大用户名_Linux - Fatal编程技术网

在Linux中显示计算机上的最短用户名和最大用户名

在Linux中显示计算机上的最短用户名和最大用户名,linux,Linux,我正在尝试配置一个脚本,该脚本显示计算机上的所有用户、他们所属的组以及最短/最长的用户名 我已经为用户和组设置了第一部分,但我无法找出最短/最长的用户名。问题有点不清楚——用什么语言编写脚本?狂欢节 如果是,字符串变量$FOO的长度可用作${FOO}。例如,要获得最长的用户名,您只需执行以下操作: grep -Eo '^([^:]+)' /etc/passwd | while read NAME do echo ${#NAME} ${NAME} done | sort -n | tail

我正在尝试配置一个脚本,该脚本显示计算机上的所有用户、他们所属的组以及最短/最长的用户名

我已经为用户和组设置了第一部分,但我无法找出最短/最长的用户名。问题有点不清楚——用什么语言编写脚本?狂欢节

如果是,字符串变量
$FOO
的长度可用作
${FOO}
。例如,要获得最长的用户名,您只需执行以下操作:

grep -Eo '^([^:]+)' /etc/passwd | 
while read NAME
do
  echo ${#NAME} ${NAME}
done |
sort -n | tail -1 | awk '{print $2}'
grep
命令在密码文件中查找用户名(从开头到第一个冒号的所有文本)

while
循环输出名称的长度以及名称本身

sort-n
对while循环的输出进行数字排序

tail-1
从已排序的输出中获取最后一行,这将是最大的数字

awk'{print$2}'
打印输出的第二列,即名称

除了使用
head-1
而不是
tail-1
之外,最短的名称应该是相同的


请记住,很可能会出现平局。还有很多其他方法可以做到这一点,包括使用其他脚本语言。

/etc/passwd
仅显示本地帐户;要查看更完整的列表,请考虑使用。同样,可以简化现有脚本。。。