通常,我会做类似的事情
IFS=','
columns=( $LINE )
其中 $LINE 是我正在阅读的 csv 文件中的一行。
但是,如何处理带有嵌入逗号的 csv 文件?我必须处理几百个演出的文件,所以一切都需要快速完成,即没有多次读取一行,绝对没有循环(上次我尝试减慢几个因素)。
代码的大体结构如下
FILENAME=$1
cat $FILENAME | while read LINE
do
IFS=","
columns=( $LINE )
# affect columns changes here
newline="${columns[*]}"
echo "$newline"
done
最好,我需要一些东西
FILENAME=$1
cat $FILENAME | while read LINE
do
IFS=","
# code to tell bash to ignore if IFS is within an open quote
columns=( $LINE )
# affect columns changes here
newline="${columns[*]}"
echo "$newline"
done
任何提示将不胜感激。否则,我可能会改用另一种语言来处理这些东西。