2013-06-18 41 views
2

有沒有更簡單的方法來做到以下幾點?我正在閱讀一個大型cvs文件,並且只想在每行索引中顯示範圍並將其輸出回csv格式。bash shell數組輸出範圍到csv

while IFS=$',' read -r -a myArray 
do 
    echo ${myArray[44]},${myArray[45]},${myArray[46]},${myArray[47]},${myArray[48]},${myArray[65]},${myArray[66]},${myArray[67]} 
done < $SHEET 
+1

awk的偉大任務 – SheetJS

回答

4

您可以使用字符串運算符數組參數擴展:

while IFS=, read -r -a myArray 
do 
    (IFS=,; echo "${myArray[*]:44:5},${myArray[*]:65:3}") 
done 
+0

像魅力一樣工作..謝謝.. – Collins

+0

+1很好地完成! –

0

看起來這是AWK量身訂做的工作。使用此awk命令:

awk -F"," '{printf("%s,%s,%s,%s,%s,%s,%s,%s\n", 
      $44, $45, $46, $47, $48, $65, $66, $67)}' $SHEET 
2
awk 'BEGIN{FS=OFS=","}{print $44, $45, $46, $47, $48, $65, $66, $67}' "$SHEET" 

我們設置輸入分隔符(FS)輸出字段分隔符(OFS),,使輸出將在csv格式。