使用bash / awk将字符串拆分为数组

时间:2015-10-27 23:13:11

标签: arrays linux bash shell awk

我有一个表格的字符串:

  "\nFIRST_ITEM\nSECOND_ITEM\nTHIRD_ITEM\n"

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

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

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

2 个答案:

答案 0 :(得分: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 <>

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

答案 1 :(得分:0)

您可以使用bash

执行此操作
a="\nFIRST_ITEM\nSECOND_ITEM\nTHIRD_ITEM\n"
a=( ${a//\\n/ } )

它用空格替换每个\n