2015-12-14 101 views
1

inputfile中:records.txt分割每條記錄的第一個字,推動在數組

100,Surender,CTS 
101,Kumar,TCS 
102,Raja,CTS 
103,Vijay,TCS 

我想,在存儲從每個記錄和存儲第一列陣列。

我寫了下面的腳本

id_array=(); 
while read -a my_line ; 

do 

    id_array+=(${my_line[0]}) 

    done < /home/user/surender/linux/inputfiles/records.txt; 

echo ${id_array[0]} 
echo ${id_array[1]} 
echo ${id_array[2]} 
echo ${id_array[3]} 

我的預期輸出是

100 
101 
102 
103 

但作爲每上面的代碼中,我得到下面的輸出

100,Surender,CTS 
101,Kumar,TCS 
102,Raja,CTS 
103,Vijay,TCS 

我不知道在哪裏指定上面腳本中的相應分隔符(逗號)。

需要一些幫助。

回答

1

有很多方法來獲得第一個字段。切口非常直觀的,雖然這可能不是最高效的代碼:

id_array+=(echo $my_line | cut -d ',' -f 1) 

解釋:

  • -d ',':分隔符爲,
  • -f 1:拿第一場

related answer中,您可以找到更有效的方法,將內部字段分隔符(IFS)設置爲, ...

+0

是的。這有助於。謝謝 –

+0

不客氣。如果您的問題解決了,請考慮接受答案... –

3

將行:

while read -a my_line ; 

隨着:

while IFS=',' read -a my_line ; 

這將行分成使用定界符,陣列。

相關問題