2012-11-01 37 views
-1

N多值低於給定的輸出與輸出的X個腳本:需要逗號分隔的殼牌

#!/bin/bash 

instant_client="/root/ora_client/instantclient_11_2" 
output=`$instant_client/sqlplus -s HRUSER/[email protected] <<EOF 
set heading off 
set feedback off 
set lines 10000 
set pagesize 10000 
select count (1) from onboardingcandidates o, candidatedetails c where o.candidateid=c.candidateid and  o.JOININGSTATUS='0091' and to_date(o.joiningdate)=to_date(sysdate+5); 

EOF 

exit` 

echo $output 

Output: 
cand1 
cand2 
cand3 
cand62 

所需的輸出:

cand1, cand2, cand3, cand62 
+0

目前尚不清楚你想要做什麼。你的問題是什麼? – Yamaneko

+0

當我嘗試運行上面的腳本時,我得到如下輸出:cand1 cand2 cand3 cand62。但我需要輸出爲逗號分隔爲cand1,cand2,cand3,cand62 – Venkatesh

+1

任何人都在那裏?請幫助A.S.A.P – Venkatesh

回答

1

如果你不需要的空間:

... | paste -d, -s - 

如果您需要的空間:

... | paste -d, -s - | sed 's/,/, /g' 
+0

它不幫助我....它給出相同的輸出...... echo $ output |粘貼-d,-s - – Venkatesh

+0

夥計們下面的查詢爲我工作...我使用listagg函數.....從列表中選擇listagg(o.candidateid,',')從(來自joindate,o.candidateid的順序)from onboardingcandidates o,candidatedetails c where o.candidateid = c.candidateid and o.JOININGSTATUS ='0091'and to_date(o.joiningdate)= to_date(sysdate + 5); – Venkatesh

0

用AWK和和改變ORS:

echo $output | awk -v ORS=", " '{print $0}' 
+0

這可以簡化爲:'awk 1 ORS =「,」' –

+0

下面的查詢爲我工作...我使用listagg函數..... select listagg(o.candidateid,',') o.candidateid = c.candidateid和o.JOININGSTATUS ='0091'和to_date(o.joiningdate)= to_date(sysdate + 5); o.candidateid是從onboardingcandidates o,candidatedetails c where o.candidateid = c.candidateid和o.JOININGSTATUS ='0091' – Venkatesh