Объединение Awk с Curl

Объединение Awk с Curl

Как мне настроить свой curlоператор так, чтобы он вставлял значение каждого из них $3для имени пользователя и значение каждого из них $4для информации о настенных часах?

Дополнительная информация

Я пытаюсь взять имя пользователя и информацию о настенных часах и curlвставить ее в приложение системного администратора на веб-сайте. Вот что у меня есть на данный момент

~/qacct.monthly | awk '{print $3}''{print $4}'

Выводит следующий результат: (где $3= владелец и $4= настенные часы)

    OWNER
WALLCLOCK
===================================================================

adeluca
1610
athardin
1
axelsone
18707336
bfinley
1875
bihe
9918667
brogers
108710282
ckbui
10
ctokheim
2445
dliang
6470745
gaolong
3395364
htrn
1
jchen12
13475380
jdereus
1086617
jiangp
24343174
jinkwang
30733663
johnsonhj
58967432
joneskl
32085365
jongkwki
47160388
jwpark
101601184
keefeh
2
ktan
13484388
litd
2031229
lteng
3882281
luhon
32500508
lvantol
66959
lwen
1272867
mama
4635850
mariettaj
44247412
msscully
64419431
nkumr
6
piersonr
454978875
rhylock
187877
rjconnel
57
root
65
sbonett
2388132
shishen
114025934
tbair
1363490
tnath
9196673
wanj
53041427
wassinkt
376268
wdeng
949336
wpmcdowe
5360475
zeiene
159442263
zhaok
3609429

Вот мое curlзаявление:

curl -d 'cluster=<CLUSTER>&username=<USER>&wallclock=<WALLCLOCK>' \
    'https://www-dev.****.****.edu/****SysAdmin/****sysadmin/clusterusage/rest/update.html'; 

решение1

Я предполагаю, что «qacct.monthly» выводит 2 строки заголовка, которые вам не нужны:

url='https://www-dev...'
cluster=CLUSTER # or whatever
~/qacct.monthly | awk 'NR > 2 {print $3, $4}' | while read owner clock; do
  curl -d "cluster=${cluster}&username=${owner}&wallclock=${clock}" "$url" 
done

решение2

Вы можете заставить awk выполнить curl. Предполагая, что имя кластера, а также поля пользователя и wallclock не содержат никаких специальных символов оболочки:

~/qacct.monthly | awk -v cluster='somename' 'NR > 2 {
    system "curl -d 'cluster=" cluster "&username=" $3 "&wallclock=" $4 "' "
           "'https://www-dev.****.****.edu/****SysAdmin/****sysadmin/clusterusage/rest/update.html'"
}'

В качестве альтернативы вы можете выполнить всю обработку в оболочке.

cluster='somename'
~/qacct.monthly | tail -n +3 |
while read -r header sep owner wallclock rest; do
  curl -d "$cluster&username=$owner&wallclock=$wallclock" \
    'https://www-dev.****.****.edu/****SysAdmin/****sysadmin/clusterusage/rest/update.html'
done

решение3

~/qacct.monthly | awk '{print "curl -d '\''cluster=<CLUSTER>&username=<"$3">&wallclock=<"$4">'\''  '\''https://www-dev.****.****.edu/****SysAdmin/****sysadmin/clusterusage/rest/update.html'\''"}'

Связанный контент