解析和连接短语

时间:2016-12-28 06:58:57

标签: awk sed grep

我有一个文件转储,其中包含个人记录:

.....Detail....account=xxxxx,......state=yyyyy,....
.....Detail....account=aaaaa,......state=bbbbb,....

使用awk,sed或grep提取连接在一起的2个短语的方法是什么? 是否可以在单程命令行中使用?

预期输出(分隔符无关紧要):

xxxxx-yyyyy
aaaaa-bbbbb

3 个答案:

答案 0 :(得分:2)

awk -F'[=,]' '{print $2"-"$4}' file 

xxxxx-yyyyy
aaaaa-bbbbb

答案 1 :(得分:1)

有关输入数据的详细信息有点模糊,但是下面的sed过滤器可能会产生预期的效果,并且最有可能进行调整,否则:

s/.*account=\([^,]*\).*state=\([^,]*\),.*/\1-\2/

答案 2 :(得分:0)

@IUnknown:我相信你的Input_file中的.....(点)是数据,如果有帮助,请你试试,请告诉我。

awk '{for(i=1;i<=NF;i++){if($i ~ /=/){split($i, A,"=");Q=Q?Q"-"A[2]:A[2]}};print Q;Q=""}'  Input_file

它认为你只需要那些在其中有=并且你想要第二个值的值,请告诉我这是否对你有帮助。