Awk와 Curl의 결합

Awk와 Curl의 결합

사용자 이름에 curl각각의 값을 입력 하고 벽시계 정보에 각각의 값을 입력하도록 명령문을 어떻게 설정합니까 ?$3$4

추가 정보

curl사용자 이름과 벽시계 정보를 웹사이트의 시스템 관리 앱으로 가져오려고 합니다 . 여기 내가 지금까지 가지고 있는 것이 있다

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

다음 출력을 생성합니다. (여기서 $3= 소유자 및 $4= wallclock)

    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'\''"}'

관련 정보