2016-06-28 7 views
-1

Я использую awk в сценарии оболочки для анализа файла. Мой вопрос был отмечен как дубликат другой, но я хочу использовать AWK и я не нашел тот же вопросAWK change FS и RS для синтаксического анализа newline char

Вот формат файла:

Hi everyone I'm new\n 
    Can u help me please\n 
    to split this file\n 
    with awk ?\n 

В результате я надеюсь:

tab[0]=Hi everyone I'm new 
tab[1]=Can u help me please 
tab[2]=to split this file 
tab[3]=with awk ? 

Поэтому я попытался изменить значения FS и RS, чтобы попытаться получить то, что я хотел, но безуспешно. Вот то, что я пробовал:

config=`cat $1` 
tab=($(echo $config | awk ' 
{ 
    for (i = 1; i < (NF); i++) 
    print $i; 
}')) 

И что я получаю:

Hi 
everyone 
I'm 
new 
Can 
u 
help 
me 
please 
to 
split 
this 
file 
with 
awk 

Вы знаете, как у продолжить, пожалуйста? :/

+1

И как именно вы пытались их изменить? – bipll

+1

- это настоящие новые строки или строка «\ n»? что такое 'tab []? массив awk? – fedorqui

+0

Вот что я пытался: конфиг = 'кошка $ 1' вкладка = ($ (эхо $ конфиг | AWK ' BEGIN {RS = "\ п"; FS = ""}; { для (я = 1; i <(NF); i ++) print $ i; } ')) – FlipperDev

ответ

0
for lineNum in $(wc -l file); do 
    tab[$lineNum]=$(awk "NR==$lineNum" file) 
done 

Не самый лучший способ, я уверен.

+0

Не уверен, не получил результат, которого я ожидал, и ничего не печатается на вкладке. – FlipperDev

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