0

我有一个输入;

8765843279  "dma_code":"501","dma_region";"NEW YORK, NY","check_fpc_cookie":"-1","check_tpc_cookie":"1"

我希望输出为;

8765843279       dma_code                 501
8765843279        dma_region               NEW YORK, NY
8765843279        check_fpc_cookie          -1
8765843279        check_tpc_cookie            1

请问有人可以帮忙吗?

4

1 回答 1

0

这可以使它:

$ awk -v RS="," -F"\"" 'NR==1{v=$1}{print v, $2, $4}' file
8765843279   dma_code 501
8765843279   dma_region NEW YORK NY
8765843279   check_fpc_cookie -1
8765843279   check_tpc_cookie 1

解释

它基于Ed Morton 的这个解决方案

  • RS=","=> 记录用逗号分隔。
  • -F"\""=> 记录中的字段由引号分隔"
  • NR==1 {v=$1}存储第一条记录的值。
  • '{print v, $2, $4}' 打印值 + 第 2 个字段 + 第 4 个字段。第 2 和第 4 位置基于使用设置为 的字段分隔符切割字段F="\""
于 2013-08-12T11:10:48.937 回答