首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用“etc”从/etc/passwd提取列表

使用“etc”从/etc/passwd提取列表
EN

Unix & Linux用户
提问于 2014-07-15 21:31:19
回答 3查看 18.5K关注 0票数 3

如何使用cut命令从/etc/passwd文件中提取用户名和登录shell的列表,其中生成的用户名和登录shell由单个空格分隔?

使用登录shell作为主键,用户名作为辅助键,按升序顺序对结果列表进行排序。将结果存储在新创建的文件~/usershells.txt中。

这是我尝试的命令:

代码语言:javascript
复制
cut -d /etc/passwd -k7 -k1 | sort > ~/usershells.txt
EN

回答 3

Unix & Linux用户

发布于 2014-07-15 21:43:04

为了进行排序,您不必使用cut,只需在管道中使用sort

代码语言:javascript
复制
sort -t " " -k 7 /etc/password |  sort -t " " -k 1

管道顺序确保登录shell将用作主键,用户名用作辅助密钥。

-t " "将使用space作为分隔符。

要只显示这两列,请使用cut (排序后):

代码语言:javascript
复制
sort -t " " -k 7 /etc/password |  sort -t " " -k 1 | cut -f 1,7 -d:

最后,您可以将输出保存在文件usershells.txt中:

代码语言:javascript
复制
sort -t " " -k 7 /etc/password |  sort -t " " -k 1 | cut -f 1,7 -d: > ~/usershells.txt

如果您的默认分隔符是:,则可以使用tr作为丹尼_L提到的内容:

代码语言:javascript
复制
tr ":" " " /etc/password |  sort -t " " -k 7| sort -t " " -k 1 | cut -f 1,7 -d: > ~/usershells.txt
票数 1
EN

Unix & Linux用户

发布于 2014-07-15 21:43:49

参数f允许您选择字段,d设置分隔字符是什么。

代码语言:javascript
复制
 cut -f 1,7 -d: /etc/passwd
票数 0
EN

Unix & Linux用户

发布于 2014-07-16 18:26:26

代码语言:javascript
复制
cut -f 1,7 -d: /etc/passwd | tr ":" " " | sort > ~/usershells.txt
票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/144705

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档