剪切 /etc/passwd 但在结果字段集中不带冒号 (:)

剪切 /etc/passwd 但在结果字段集中不带冒号 (:)

我想使用以下格式列出 /etc/passwd 上的用户名、id 和组:username uid gid

我使用过以下内容:

cut -d: -f1,3,4 /etc/passwd

但它回来了username:uid:gid。如何格式化命令以删除:没有它的或列表,如下所示:

root 0 0
daemon 1 1
bin 2 2
...

答案1

取决于你想要什么输出

最简单的方法是将分隔符转换为您想要的内容trsed或者awk...例如

cut -d: -f1,3,4 /etc/passwd | tr ':' '\t'
cut -d: -f1,3,4 /etc/passwd | sed 's/:/ --- /g'
awk -F: '{ print $1, $3, $4}' /etc/passwd

如果你想格式化为表格然后使用column

cut -d: -f1,3,4 /etc/passwd | column -t -s ':'

答案2

我的 cut (cut (GNU coreutils) 8.28) 版本有一个--output-delimiter参数:

cut -d: -f 1,3,4 --output-delimiter " " /etc/passwd

结果:

root 0 0
daemon 1 1
bin 2 2
sys 3 3

相关内容