在 awk 命令中使用变量

在 awk 命令中使用变量

我试图找到特定范围内的 UID,并且只显示这些 UID 及其名称。该范围由我在命令行中输入的两个参数确定。但是,我现在使用的代码中没有收到正确的答案。下面,第一个命令显示运行我现在使用的代码。在第二个命令中,您将看到我的答案应该有。

$ ./UserID 10 100
root:0
$ ./UserID 10 100
operator: 11
games: 12
ftp: 14
dbus: 81
apache: 48
tss:59
avahi: 70
грс:32
rpcuser: 29
gdm: 42
sshd: 74
tcpdump: 72
#! /bin/bash

min=$1
max=$2

awk -F: '($3>=min) && ($3<=max ) {printf "%s:%s\n",$1,$3}' /etc/passwd

答案1

像这样:

#!/bin/bash

min=$1
max=$2

awk -F: -v min="$min" -v max="$max" '($3>=min) && ($3<=max) {printf "%s:%s\n",$1,$3}' /etc/passwd

相关内容