我必须编写一个ONELINER,它为所有标识符以“1”开头的组打印系统组及其标识符。
以下是我系统中各组的一些示例:
fuse:x:105:
messagebus:x:106:
ssl-cert:x:107:
lpadmin:x:108:piciu
scanner:x:109:saned
mlocate:x:110:
ssh:x:111:
utempter:x:112:
avahi-autoipd:x:113:
rtkit:x:114:
saned:x:115:
whoopsie:x:116:
avahi:x:117:
lightdm:x:118:
nopasswdlogin:x:119:
bluetooth:x:120:
colord:x:121:
pulse:x:122:
pulse-access:x:123:
piciu:x:1000:
sambashare:x:124:piciu
howard:x:1001:
penny:x:1002:
leonard:x:1003:
sheldon:x:1004:
我要打印:保险丝105消息总线106 ssl-cert 107等等leonard 1003 sheldon 1004
答案 0 :(得分:2)
您可以使用非常简单的awk脚本
$ awk -F: '$3 ~ /^1/' input
fuse:x:105:
messagebus:x:106:
ssl-cert:x:107:
lpadmin:x:108:piciu
scanner:x:109:saned
mlocate:x:110:
ssh:x:111:
utempter:x:112:
avahi-autoipd:x:113:
rtkit:x:114:
saned:x:115:
whoopsie:x:116:
avahi:x:117:
lightdm:x:118:
nopasswdlogin:x:119:
bluetooth:x:120:
colord:x:121:
pulse:x:122:
pulse-access:x:123:
piciu:x:1000:
sambashare:x:124:piciu
howard:x:1001:
penny:x:1002:
leonard:x:1003:
sheldon:x:1004:
awk -F: '$3 ~ /^1/' input
fuse:x:105:
messagebus:x:106:
ssl-cert:x:107:
lpadmin:x:108:piciu
scanner:x:109:saned
mlocate:x:110:
ssh:x:111:
utempter:x:112:
avahi-autoipd:x:113:
rtkit:x:114:
saned:x:115:
whoopsie:x:116:
avahi:x:117:
lightdm:x:118:
nopasswdlogin:x:119:
bluetooth:x:120:
colord:x:121:
pulse:x:122:
pulse-access:x:123:
piciu:x:1000:
sambashare:x:124:piciu
howard:x:1001:
penny:x:1002:
leonard:x:1003:
sheldon:x:1004:
它的作用是什么?
-F:
将字段分隔符设置为:
'$3 ~ /^1/'
检查第三个字段,id是否以1