我有一个文件转储,其中包含个人记录:
.....Detail....account=xxxxx,......state=yyyyy,....
.....Detail....account=aaaaa,......state=bbbbb,....
使用awk,sed或grep提取连接在一起的2个短语的方法是什么? 是否可以在单程命令行中使用?
预期输出(分隔符无关紧要):
xxxxx-yyyyy
aaaaa-bbbbb
答案 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
它认为你只需要那些在其中有=并且你想要第二个值的值,请告诉我这是否对你有帮助。