【问题标题】:bash How to print all values from a key value pair.bash 如何打印键值对中的所有值。
【发布时间】:2018-04-23 16:55:29
【问题描述】:

我有一个用逗号 (,) 分隔的键值对。我想用逗号作为分隔符打印所有值。只是将它们加载到mysql数据库中。

原始数据格式:

key1:value1, key2:value2, key3:value31 value32, key4:value4, keyn:valuen key1:value1, key2:value2, key3:value3 value3, key4:value41 value42, keyn:valuen

所需格式:

value1, value2, value31 value32, value4, valuen value1, value2, value3, value41 value42, valuen

谢谢..

【问题讨论】:

    标签: bash shell unix awk sed


    【解决方案1】:

    这是你想要的吗?

    sed -e 's/[^,: ]*://g' yourfile.txt
    

    输出:

    value1, value2, value31 value32, value4, valuen value1, value2, value3 value3, value41 value42, valuen
    

    【讨论】:

    • 这里不需要管道,只需sed -e 's/[^,: ]*://g' yourfile.txt
    【解决方案2】:

    简单的awk解决方案:

    awk '{ gsub(/[^[:space:],]+:/,"") }1' file
    
    • gsub(/[^[:space:],]+:/,"") - 删除所有 以及初始键/值分隔符 :

    输出:

    value1, value2, value31 value32, value4, valuen
    value1, value2, value3 value3, value41 value42, valuen
    

    【讨论】:

      猜你喜欢
      • 2014-05-04
      • 1970-01-01
      • 1970-01-01
      • 2020-04-07
      • 2013-07-25
      • 2020-05-24
      • 2018-05-16
      • 2012-02-13
      • 2013-02-15
      相关资源
      最近更新 更多