【问题标题】:Split string into array with bash/awk使用 bash/awk 将字符串拆分为数组
【发布时间】:2016-01-27 13:58:21
【问题描述】:

我有一个形式的字符串:

  "\nFIRST_ITEM\nSECOND_ITEM\nTHIRD_ITEM\n"

当我尝试使用 awk 将其拆分为这样的数组时,

  echo "\nFIRST_ITEM\nSECOND_ITEM\nTHIRD_ITEM\n" | awk '{split($0,a,"\n")}'

整个字符串按原样存储到 a[1] 中。有人可以解释为什么会发生这种情况以及如何解决它吗?

【问题讨论】:

    标签: arrays linux bash shell awk


    【解决方案1】:

    从您的问题中不清楚,但这可能是您正在寻找的:

    $ echo "\nFIRST_ITEM\nSECOND_ITEM\nTHIRD_ITEM\n" |
        awk '{split($0,a,/\\n/); for (i=1;i in a;i++) print i, "<" a[i] ">"}'
    1 <>
    2 <FIRST_ITEM>
    3 <SECOND_ITEM>
    4 <THIRD_ITEM>
    5 <>
    

    假设您的 echo 将 \n 输出为字符串 \n 而不是换行符。

    【讨论】:

      【解决方案2】:

      您可以使用bash

      a="\nFIRST_ITEM\nSECOND_ITEM\nTHIRD_ITEM\n"
      a=( ${a//\\n/ } )
      

      它将每个\n 替换为一个空格。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-11-26
        • 2021-10-09
        • 1970-01-01
        • 1970-01-01
        • 2020-05-08
        • 2018-05-01
        • 2015-08-28
        相关资源
        最近更新 更多