2017-10-05 15 views
0

任何人都可以幫助我在此 我有一個變量,它包含刪除所有散了Teradata的價值在UNIX

var="DDP_COMPLIANCE ,ONT_COMPLIANCE_CD --,TECHNICIAN_EMPLOYEE_ID --,ENTRY_OPERATOR_EMPLOYEE_ID --,LAST_UPDATE_OPERATOR_EMPLOYEE_ID ,PARENT_TROUBLE_CALL_WORK_ORDER_ID --,abc_line ,PARENT_INSTALL_WORK_ORDER_ID ,TECH_COMPLIANCE_STARTBY_TS " 

我想刪除所有「 - ,列名」,並打印其餘

和輸出將是

DDP_COMPLIANCE ,ONT_COMPLIANCE_CD,PARENT_TROUBLE_CALL_WORK_ORDER_ID ,PARENT_INSTALL_WORK_ORDER_ID ,TECH_COMPLIANCE_STARTBY_TS 

我使用sed命令作爲

echo $var | sed 's/--.*,/,/' 

但得到的輸出作爲

DDP_COMPLIANCE ,ONTRAC_COMPLIANCE_CD ,TECH_COMPLIANCE_STARTBY_TS 

這是不正確

回答

0

我敢肯定有一個簡單的方法,但目前,這對你的作品?

echo $var | awk '{ for (i=1; i<=NF; i++) print $i }' | grep -v "^--" | awk 'BEGIN { ORS=" " }; { print $0 }' 

最後的awk部分是將結果格式化爲單行。

結果:

$ echo $var | awk '{ for (i=1; i<=NF; i++) print $i }' | grep -v "^--" | awk 'BEGIN { ORS=" " }; { print $0 }' 
DDP_COMPLIANCE ,ONT_COMPLIANCE_CD ,PARENT_TROUBLE_CALL_WORK_ORDER_ID ,PARENT_INSTALL_WORK_ORDER_ID ,TECH_COMPLIANCE_STARTBY_TS