2013-01-24 102 views
1

我有一個包含等(單詞中的任何字符串的數目爲隨機的)串的文件:如何在shell腳本中逐字解析字符串?

coge las hojas y las quemas todas en el fuego k Wo x e l a s Wo x a s i l a s k We m a s t Wo D a s e n e l f w We G o 
la liga de paz se reunió para tratar el tema l a l Wi G a d e p Wa T s e rr e w n j Wo p a r a t r a t Wa r e l t We m a 
el bebé se mete el pie dentro de la boca e l b e B We s e m We t e e l p j We d We n t r o d e l a b Wo k a 
hoy en día el pollo es un plato común Wo j e n d Wi a e l p Wo L o We s Wu n p l Wa t o k o m Wu n 

我想在單詞串分離。例如,我想有從第一句10個變量V1,V2,...... V10使:

v1="coge" 
v2="las" 
... 
v10="fuego" 

預先感謝您的幫助!

+1

可以使用此[鏈接] [ 1]找到你的答案:) [1]:http://stackoverflow.com/questions/1 469849/how-to-split-one-string-into-multiple-strings-in-bash-shell – Akinza

+0

第4行的第10個單詞應該是「Wo」嗎?你確定什麼時候「單詞」結束的標準是什麼? –

+0

單詞列表是從行的手機列表中分離出來的,標籤 – user1835630

回答

1

假設3米或更多的空間分隔開行的其餘部分的話:

while IFS= read -r line; do 
    read -ra words <<< ${line%% *} 

    # do whatever you need with the words array here, for example 
    for ((i=0; i<${#words[@]}; i++)); do 
     printf "%d - %s\n" $i "${words[i]}" 
    done 
done < filename 

要使用製表符:

while IFS=$'\t' read -r words phones; do 
    read -ra words_ary <<< $words 

    # do whatever you need with the words array here, for example 
    for ((i=0; i<${#words_ary[@]}; i++)); do 
     printf "%d - %s\n" $i "${words_ary[i]}" 
    done 
done < filename 
+0

非常感謝!一個選項卡將文字與該行的其餘部分分開。 – user1835630

+0

,我想只拿到電話列表前的單詞。實際上我想擺脫每行中的手機列表。 – user1835630

相關問題