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 に答える