2015-10-27 3 views
0

У меня есть строка вида:Разбивает строку в массив с Баш/AWK

"\nFIRST_ITEM\nSECOND_ITEM\nTHIRD_ITEM\n" 

Когда я пытаюсь использовать AWK, чтобы разделить его в массив, как это так,

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

Весь строка просто хранится как есть в [1]. Может кто-нибудь объяснить, почему это происходит и как это исправить?

ответ

0

Вы можете сделать это с bash:

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

Он заменяет каждый \n с пространством.

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, а не символом новой строки.

Смежные вопросы