我有
while read $field1 $field2 $field3 $field4
do
$trimmed=$field2 | sed 's/ *$//g'
echo "$trimmed","$field3" >> new.csv
done < "$FEEDS"/"$DLFILE"
现在问题出在read
我不能让它分割字段csv样式,可以吗?请参阅下面的输入csv格式。
我需要将第3列和第4列删除,从第2列剥离填充,我不需要引号。
带编号的Csv格式: 12 24(“)25(,)26(”)/ 27(Field2values)42(“)/ 43(,)/ 44(Field3十进制值) “Field1_constant_value”,“Field2values”,Field3,Field4
Field1是不变的,无关紧要。引用数据,从引号内的2-23开始。 Field2用引号内的cols 27-41固定,数据在左边,用右边的空格填充。 Field3是十进制数,在小数点前有1,2或3位,后面有2位,没有填充。从col 74开始。 Field4是一个约会,我现在对此并不在意。
答案 0 :(得分:6)
是的,你可以使用阅读;你所要做的就是重置环境变量IFS
- 内部字段分隔符 - ,这样它就不会按照当前值(默认为空格)来划分行,而是通过自己的分隔符。 / p>
考虑输入文件“a.csv”,给定内容:
1,2,3,4
-2,3,4,5-
6,3,2,1
你可以这样做:
IFS=','
while read f1 f2 f3 f4; do
echo "fields[$f1 $f2 $f3 $f4]"
done < a.csv
输出是:
字段[1 2 3 4]
字段[2 3 4 5]
字段[6 3 2 1]
答案 1 :(得分:1)