我想将 /etc/passwd 中的用户名输出打印到多列中。我的服务器的输出是
[root@master vdabas]# cat -n /etc/passwd |切-f1-d“:”
1 root
2 bin
3 daemon
4 adm
5 lp
6 sync
7 shutdown
8 halt
9 mail
10 operator
11 games
12 ftp
13 nobody
14 systemd-network
15 dbus
16 polkitd
17 sshd
18 postfix
19 vdabas
20 vani
21 delhi
我希望输出如下:
1 root 8 halt 15 dbus
2 bin 9 mail 16 polkitd
3 daemon 10 operator 17 sshd
4 adm 11 games 18 postfix
5 lp 12 ftp 19 vdabas
6 sync 13 nobody 20 vani
7 shutdown 14 systemd-network 21 delhi
答案1
您可以使用该pr
命令将格式设置为 3 列 ( -3
),省略分页 ( -T
):
cat -n /etc/passwd | cut -f1 -d":" | pr -T -3
也许
awk -F: '{print NR,$1}' /etc/passwd | pr -T -3
答案2
在 macOS(也许还有其他 BSD 风格)下使用
pr -t -3
(小写“t”)
在您的特殊情况下,如果您的输入位于文件 list.txt 中
pr -3 -l7 list.txt
会做的工作。如前所述,对于我的 BSDish macOS“pr”命令。 (请注意,如果 -l 参数的总和不大于标头和尾部深度的总和,选项 -l 会自动抑制标头)