0
cat DecisionService.txt
/MAGI/Household/MAGI_EDG_FLOW.erf;/Medicaid/MAGI_EDG_FLOW;4;4
/VCL/VCL_Ruleflow_1.erf;/VCL/VCL1_EBDC_FLOW;4;4
/VCL/VCL_Ruleflow_2.erf;/VCL/VCL2_EBDC_FLOW;4;4

我试过这个:

cat DecisionService.txt |  cut -d ';' -f2 | cut -d '/' -f2 | tr -s ' ' '\n'

我的输出是:

$i=Medicaid
VCL
VCL

而我需要输出为:

$a=Medicaid
$b=VCL
4

2 回答 2

1

如果您只想要唯一值,那么:

awk -F'/' 'NF&&!a[$(NF-1)]++{print $(NF-1)}' file
Medicaid
VCL

如果您实际上希望输出包含前缀增量变量,则:

awk -F'/' 'NF&&!a[$(NF-1)]++{printf "$%c=%s\n",i++,$(NF-1)}' i=97 file
$a=Medicaid
$b=VCL

注意:如果您的输入可能包含超过 26 个唯一值,您将需要做一些更聪明的事情来避免输出,例如$|=VCL.

于 2013-05-08T14:41:07.667 回答
0

那么从这个问题来看,你到底想要什么并不是很清楚,但我想你不想VCL在输出中重复。尝试在最后添加 sort 和 uniq。

cat DecisionService.txt
/MAGI/Household/MAGI_EDG_FLOW.erf;/Medicaid/MAGI_EDG_FLOW;4;4
/VCL/VCL_Ruleflow_1.erf;/VCL/VCL1_EBDC_FLOW;4;4
/VCL/VCL_Ruleflow_2.erf;/VCL/VCL2_EBDC_FLOW;4;4

cat DecisionService.txt |  cut -d ';' -f2 | cut -d '/' -f2 | tr -s ' ' '\n'|sort|uniq
Medicaid
VCL
于 2013-05-08T14:40:45.773 回答