【发布时间】:2022-06-10 23:11:36
【问题描述】:
我正在尝试使用 awk 编写能够为我提供这种类型输出的东西。
我正在尝试从 /etc/group 文件
Group : root ID:0 : 2 accounts
Group : daemon ID: 1 : 1 account
Group : bin ID: 2 : 1 account
我已经试过了,
#!/bin/bash
NbrsUtil=$(cut -d ":" -f4 /etc/group | awk -F "," '{print NF}')
awk -v utils=$NbrsUtil -F ":" '{print "Groupe:",$1,"ID:" $3,utils," :accounts"} ' /etc/group
这不起作用.. 我可以尝试使用“cut”来指定我想要的字段,然后我使用awk通过“|”来计算字段的数量,我得到了很好的值,但输出不好并且不适用于我的脚本。
cut -d ":" -f4 /etc/group | awk -F "," '{print NF}'
0
0
0
0
2
0
0
0
0
0
0
0
0
0
2
0
如果我在脚本中回显命令,它将显示在一行中
#!/bin/bash
NbrsUtil=$(cut -d ":" -f4 /etc/group | awk -F "," '{print NF}')
echo $NbrsUtil
awk -F ":" '{print "Groupe:",$1,"ID:" $3,$4," :accounts"} ' /etc/group
-->
0 0 0 0 2 0 0 0 0 0 0 0 0 0 2 0 0 1 1 0 1 2 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 2 0 0 1 0 0 0 1 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 2 0 0 0 0
Groupe: root ID:0 :accounts
Groupe: daemon ID:1 :accounts
Groupe: bin ID:2 :accounts
Groupe: sys ID:3 :accounts
Groupe: adm ID:4 franco,root :accounts
Groupe: tty ID:5 :accounts
Groupe: disk ID:6 :accounts
Groupe: lp ID:7 :accounts
Groupe: mail ID:8 :accounts
任何帮助将不胜感激:)
【问题讨论】:
标签: linux bash awk field script