因此使用
exim
和 sed
命令我得到如下结果
10 /home/user1
20 /home/user2/public_html
30 /home/user3
40 /home/user4/public_html
50 /home/user5
60 /home/user6/public_html
这显示用户已发送了多少邮件。 如何按降序获取结果并仅获取用户名?
即,从上面的结果我想要
grep user6
然后运行 /scripts/suspendacct user6
使用 awk 和排序:
awk -F '[/ ]' '{print $1,$4}' file | sort -n -r
输出:
60 用户6 50 用户5 40 用户4 30 用户3 20 用户2 10 用户1
或者使用
cut
获取所需的字段并通过管道传输到 sort
:
$ cut --output-delimiter="" -d / -f 1,3 file | sort -r
60 user6
50 user5
40 user4
30 user3
20 user2
10 user1
如果您想在查询字符串后 grep 多行,您可以使用它
grep -A 3 "your query string" your_file
3
是您在条件之后想要看到的行号。
查询后的行号:
-A NUM, --after-context=NUM
查询前的行号:
-B NUM, --before-context=NUM