2015-12-11 152 views
0

我書面方式簡單.ksh文件中讀取從.csv文件的單個列,然後打印輸出到屏幕上:讀取列忽略標頭

fname=($(cut -d, -f2 "myfile.csv")) 
# loop through these names 
for i in ${fname[@]}; 
do echo "$i" 
done 

該作品很好,但我不想返回標題行,即文件的第一行。我將如何修改cut命令,以便忽略第一個值或字符串。在這種情況下,標題被稱爲'NAME'。我想打印此文件的所有其他行。

這就是說,是否更容易從2:fname循環通過代碼當前寫入或最好是改變切割命令?

回答

2

你可以做

fname=($(sed 1d myfile.csv | cut -d, -f2)) 

可替換地,該陣列的第一個元素的索引爲0:

for i in "${fname[@]:1}"; do 

演示::

$ a=(a b c d e f) 
$ echo "${a[@]:1}" 
b c d e f 
索引1處開始循環

請注意,您應始終將數組擴展放在雙引號中。