Nar*_*rma 8 grep text-processing
我有一个类似于本网站上另一个问题的问题,个人必须从 /etc/passwd 中找到使用 grep 或 awk 的所有用户的列表。这对我有用,但我尝试翻译它以查找并列出它们的主目录。我已经知道你不能在一行中完成,所以我知道我会使用管道。我已经在网上完成了我的研究,但我无法弄清楚问题是什么。如果我使用 grep 并执行以下操作:
grep -oE '^[/*/]$' /etc/passwd
Run Code Online (Sandbox Code Playgroud)
...它可能会给我一个错误,或者它还会显示我不想要的 /bin/bash 文件。我只需要使用 grep 列出的用户名及其主目录!我也不确定 * 是否将其他正斜杠显示为字符,因为某些主目录不止两个 /(正斜杠)。
Ste*_*zzo 18
您可以使用cut
特定分隔符上的列拆分文件:
cut -d: -f6 /etc/passwd
Run Code Online (Sandbox Code Playgroud)
或者-f1,6
对于列(字段)1 和 6。
Zac*_*ady 10
Grep 确实不是以这种方式解析数据的工具;grep 更多用于模式匹配,而您正在尝试进行文本处理。你会想要使用 awk。
awk -F":" '$7 == "/bin/false" {print "User: "$1 "Home Dir: "$6}' /etc/passwd
Run Code Online (Sandbox Code Playgroud)
awk
- 命令
-F":"
– 将数据分隔符设置为 :
$7 == "/bin/false"
– 检查第 7 个数据列是否为 /bin/false
{print "User: "$1 "Home Dir: "$6}'
– 表示以指定格式打印第一列和第六列。
/etc/passwd
– 是我们正在处理的文件
归档时间: |
|
查看次数: |
9590 次 |
最近记录: |