【发布时间】:2014-08-06 14:15:34
【问题描述】:
我有这个 bash 脚本可以从给定的 csv 文件的行中删除列,但它运行得非常慢。我需要将此脚本用于大于 1GB 的文件,因此我正在寻找更快的解决方案。
#!/bin/bash
while read line; do
columns=`echo $line | awk '{print NF}' FS=,`
if [ "$columns" == "9" ]; then
echo `echo $line | cut -d \, -f 1,5,6,8,9`
elif [ "$columns" == "24" ]; then
echo `echo $line | cut -d \, -f 1,5,6,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24`
elif [ "$columns" == "8" ]; then
echo `echo $line | cut -d \, -f 1,4,5,6,7,8`
else
echo $line
fi
done <$1
如果有人对如何加快速度或有更好的方法提出建议,那就太好了。非常感谢!
【问题讨论】: