有更简单的方法来执行以下操作吗?我正在读取一个大的cvs文件,并且只想在每行的索引上显示范围并输出回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
答案 0 :(得分:4)
您可以将子字符串运算符与数组参数展开一起使用:
while IFS=, read -r -a myArray
do
( IFS=,; echo "${myArray[*]:44:5},${myArray[*]:65:3}" )
done
答案 1 :(得分:2)
awk 'BEGIN{FS=OFS=","}{print $44, $45, $46, $47, $48, $65, $66, $67}' "$SHEET"
我们将输入字段分隔符(FS)和输出字段分隔符(OFS)设置为,
,以便输出位于csv
格式。
答案 2 :(得分:0)
看起来这是awk的量身定制的工作。使用此awk命令:
awk -F"," '{printf("%s,%s,%s,%s,%s,%s,%s,%s\n",
$44, $45, $46, $47, $48, $65, $66, $67)}' $SHEET