我有一个 while 循环,它从具有城市名称的文件中读取数据:
城市名称:
COIMBATORE
MADURAI
PONDICHERRY
SALEM
TRIPUR
TIRUCHI
TIRUNELVELI
TUTUCORIN
VELLORE
Run Code Online (Sandbox Code Playgroud)
并awk在while循环中使用命令并尝试在awk语句中再次读取 while 循环体中定义的变量,但是,这不起作用并给我错误。我知道awk需要为其主体单独定义变量,以便awk了解变量用法并可以读取其值。
我的 while 循环如下所示:
while read city
do
awk -F, '{
if ( $1 == "ACTIVE" ) &&
( $2 == "$city" )
print $1
}' siteDBName >> count
SUM=`awk '{ sum += $1 } END { print sum }' count`
done < city_name
Run Code Online (Sandbox Code Playgroud)
其中 siteDBName 文件包含多列数据,如下所示:
站点数据库名称:
ACTIVE,COIMBATORE,MGT500,1,5,7....
INACTIVE,MADURAI,GT500,5,6,7...
ACTIVE,SALEM,TR600,6,4,6...
ACTIVE,COIMBATORE,GT500,4,5,6...
..
..
Run Code Online (Sandbox Code Playgroud)
在这里,我尝试使用 …
我有一个文件user-pid.out2,其中包含“usernumber”和“process id”作为两列。根据用户编号我想找到相应的进程ID。下面的前两行没有正确显示输出,但是当我在第 3 行和第 4 行中将用户硬编码为 62 时,它显示了与用户 62 对应的进程 ID。有人可以帮忙吗?
USR=62
usrpid=`awk '$1 == "$USR" {print $2}' /home/hu/batchhu/dbscripts_tst2/user-pid.out2`
echo "first:" $USR $usrpid
# This shows 62 and blank for process id
usrpid=`awk '$1 == "62" {print $2}' /home/hu/batchhu/dbscripts_tst2/user-pid.out2`
echo "second:" $USR $usrpid
# This shows 62 and process id corresponding to this user in the file user-pid.out2
Run Code Online (Sandbox Code Playgroud)