如何从 grep 命令获取自定义输出

问题描述 投票:0回答:3

因此使用

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

grep
3个回答
1
投票

使用 awk 和排序:

awk -F '[/ ]' '{print $1,$4}' file | sort -n -r

输出:

60 用户6
50 用户5
40 用户4
30 用户3
20 用户2
10 用户1

0
投票

或者使用

cut
获取所需的字段并通过管道传输到
sort
:

$ cut --output-delimiter="" -d / -f 1,3 file | sort -r
60 user6
50 user5
40 user4
30 user3
20 user2
10 user1

0
投票

如果您想在查询字符串后 grep 多行,您可以使用它

grep -A 3 "your query string" your_file

3
是您在条件之后想要看到的行号。

查询后的行号:

-A NUM, --after-context=NUM

查询前的行号:

-B NUM, --before-context=NUM

© www.soinside.com 2019 - 2024. All rights reserved.