【问题标题】:how to covert a text file in json format using shell script如何使用 shell 脚本将文本文件转换为 json 格式
【发布时间】:2016-12-22 21:26:12
【问题描述】:

示例文本

 [08/12/2016 01:26:17 kup01 -  NBU status: 96, EMM status: No media is]

期待输出

$json ="[{""date"":""08/12‌​‌​‌​/2016"",
          ""time"":‌​""‌​01‌​:26:17"",
          ""ho‌​st""‌​:"ku‌​p01",
          "sta‌​tu code":"09",
          "emm status":"No media is""
        }]

【问题讨论】:

    标签: json bash shell


    【解决方案1】:

    试试这个代码。

    -bash-4.1$ sh test
    {
    "date":"08/12/2016"
    "time":"01:26:17"
    "host":"kup01"
    "status code":"96,"
    "emm status":" No media is"
    }
    -bash-4.1$ cat test
    #!/bin/bash
    
    SHELL_OUPTUT="[08/12/2016 01:26:17 kup01 - NBU status: 96, EMM status: No media is]"
    
    echo -e "{
    \"date\":\"$(echo $SHELL_OUPTUT|sed -e 's/\[//' -e 's/\]//'|awk '{print $1}')\"
    \"time\":\"$(echo $SHELL_OUPTUT|sed -e 's/\[//' -e 's/\]//'|awk '{print $2}')\"
    \"host\":\"$(echo $SHELL_OUPTUT|sed -e 's/\[//' -e 's/\]//'|awk '{print $3}')\"
    \"status code\":\"$(echo $SHELL_OUPTUT|sed -e 's/\[//' -e 's/\]//'|awk '{print $7}')\"
    \"emm status\":\"$(echo $SHELL_OUPTUT|sed -e 's/\[//' -e 's/\]//'|awk -F : '{print $NF}')\"
    }"
    -bash-4.1$
    

    【讨论】:

      【解决方案2】:

      试试这个;

      echo "08/12/2016 01:26:17 kup01 - NBU status: 96, EMM status: No media is" | awk '{print "$json =\"[{\"\"date\"\":\"\"" $1    "\"\", \"\"time\"\":‌​\"\"‌​" $2 "\"\", \"\"ho‌​st\"\"‌​:\"" $3 "\", \"sta‌​tu code\":\"" $6 "\", \"emm status\":\"" $10" "$11" "$12"\"\" }]"}' 
      

      【讨论】:

      • 对于你的 sysntax 我没有得到输出
      猜你喜欢
      • 1970-01-01
      • 2017-06-24
      • 2016-04-28
      • 2015-08-27
      • 2021-11-14
      • 1970-01-01
      • 1970-01-01
      • 2016-09-02
      • 1970-01-01
      相关资源
      最近更新 更多