如何从一个文件中读取 awk 并将其与另一个文件中的 awk 进行比较
How to read awk from one file and compare it with awk from another file
我的脚本正在输出过去 $2 天内最常登录的用户 $1
#var[$i]=$(awk -F: '{print }' /etc/passwd);
last -s -days | awk '{users[]++} END{for(i in users){print users[i], i}}' | sort -r | head - | awk '{print " -- " }';
所以输出如下:
username -- (amount of logins)
但我正在尝试从 /etc/passwd 中获取包含名字和姓氏的输出,所以它是:
first and last name, username -- (amount of logins)
但我想出的每一个想法似乎都不适合我。我尝试使用 /etc/passwd 循环 awk,然后在另一个 awk 中使用 -v 或尝试将第二个 awk 的输出放入数组中,然后将其与 /etc/passwd 进行比较,但我无法使任何一个工作。
有人知道如何处理吗?
这应该让你开始:
awk 'NR==FNR{name[]=;next} {u[]++}
END{for(x in u)printf "%s, %s -- %d\n", name[x],x,u[x]} ' FS=":" /etc/passwd FS=" " <(last)
- 这将从
last
命令输出所有 first and last name, username -- (amount of logins)
- 您可能希望通过添加一些必需的选项来调整
last
命令
- 省略了
sort
和head
,相信你能搞定
我的脚本正在输出过去 $2 天内最常登录的用户 $1
#var[$i]=$(awk -F: '{print }' /etc/passwd);
last -s -days | awk '{users[]++} END{for(i in users){print users[i], i}}' | sort -r | head - | awk '{print " -- " }';
所以输出如下:
username -- (amount of logins)
但我正在尝试从 /etc/passwd 中获取包含名字和姓氏的输出,所以它是:
first and last name, username -- (amount of logins)
但我想出的每一个想法似乎都不适合我。我尝试使用 /etc/passwd 循环 awk,然后在另一个 awk 中使用 -v 或尝试将第二个 awk 的输出放入数组中,然后将其与 /etc/passwd 进行比较,但我无法使任何一个工作。 有人知道如何处理吗?
这应该让你开始:
awk 'NR==FNR{name[]=;next} {u[]++}
END{for(x in u)printf "%s, %s -- %d\n", name[x],x,u[x]} ' FS=":" /etc/passwd FS=" " <(last)
- 这将从
last
命令输出所有first and last name, username -- (amount of logins)
- 您可能希望通过添加一些必需的选项来调整
last
命令 - 省略了
sort
和head
,相信你能搞定