awkコマンドで変数を使用する

awkコマンドで変数を使用する

特定の範囲内のUIDを見つけて、そのUIDとその名前のみを表示したいと思います。範囲は、コマンドラインに入力する2つのパラメータによって決まります。ところで、今使っているコードでは正解が出ません。以下に示す最初のコマンドは、現在使用中のコードを実行します。 2番目のコマンドで私の答えを見ることができますしなければならない持っています。

$ ./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

関連情報