gpt4 book ai didi

Linux 用户名/etc/passwd 列表

转载 作者:太空宇宙 更新时间:2023-11-04 04:36:51 25 4
gpt4 key购买 nike

我想打印在 /etc/passwd 中找到的最长和最短的用户名。如果我运行下面的代码,它对于最短的 (head -1) 可以正常工作,但不能运行 (sort -n |tail -1 | awk '{print $2})。谁能帮我找出问题所在吗?

#!/bin/bash

grep -Eo '^([^:]+)' /etc/passwd |
while read NAME
do
echo ${#NAME} ${NAME}
done |
sort -n |head -1 | awk '{print $2}'
sort -n |tail -1 | awk '{print $2}'

最佳答案

这里的问题是:

管道以第一个sort -n |head -1 | 结束awk '{print $2}' 命令。因此,第一个命令的输入是通过管道提供的,并获得输出。

对于第二个命令,未给出任何输入。因此,它等待来自 STDIN(即键盘)的输入,您可以通过键盘输入输入并按 ctrl+D 来获取输出。

请运行如下代码以获得所需的输出:

#!/bin/bash

grep -Eo '^([^:]+)' /etc/passwd |
while read NAME
do
echo ${#NAME} ${NAME}
done |
sort -n |head -1 | awk '{print $2}'

grep -Eo '^([^:]+)' /etc/passwd |
while read NAME
do
echo ${#NAME} ${NAME}
done |
sort -n |tail -1 | awk '{print $2}

'

关于Linux 用户名/etc/passwd 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44708520/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com