使用 awk 解析单行

使用 awk 解析单行

这是 qacct -o 的输出

Total : OWNER WALLCLOCK UTIME STIME CPU MEMORY IO IOW         ========================================================================================================================= 
Total : adeluca 1947 45.550 8.325 53.875 3.079 17.268 0.000 
Total : athardin 1 0.039 0.056 0.095 0.000 0.000 0.000 
Total : axelsone 35398815 34902115.362 37631.812 34939747.173 33441742.534 11432.294 0.000 
Total : bfinley 1875 6654.039 108.112 6762.151 2867.369 33.136 0.000 
Total : bihe 12018070 6479035.116 1168497.282 7647532.398 4463769.624 478955.800 0.000 
Total : brogers 108710282 108181275.073 46824.068 108228099.141 1741423.539 2.129 0.000 
Total : ckbui 10 0.006 0.006 0.012 0.000 0.000 0.000 
Total : ctokheim 114192 15177.837 460.056 15898.657 11150.583 208.076 0.000 
Total : dliang 6483476 8023175.362 80187.624 13133457.012 12167904.607 472.620 0.000 
Total : gaolong 3395364 3382687.178 5792.021 3388479.200 6904718.986 11.328 0.000 
Total : htrn 1 0.016 0.006 0.022 0.000 0.000 0.000 

现在我有

qacct - o | awk 'NR>2 print {$1}'

这样做的目的是提取单个用户名,如下所示:

adeluca
athardin
axelsone
bfinley
bihe
brogers
ckbui
ctokheim
dliang
gaolong
htrn

我想要的是能够解析列表,并且对于每个用户都能够提取每个单独的用户并将其放入另一个需要其用户名的文件中。

例如。

~/qacct.每月阿德卢卡

所以我最终想要的是能够通过 qacct -o 进行解析,获取单个用户并能够调用类似的东西

〜/qacct.monthly $users

这样我就不必每次都手动将各个用户放入。

答案1

for i in `qacct - o | awk 'NR>2 print {$1}'`
do
  ~/qacct.monthly $i
done

相关内容