But*_*kus 2 csv bash text pattern-matching
我有
while read $field1 $field2 $field3 $field4
do
$trimmed=$field2 | sed 's/ *$//g'
echo "$trimmed","$field3" >> new.csv
done < "$FEEDS"/"$DLFILE"
Run Code Online (Sandbox Code Playgroud)
现在的问题是read我不能让它分裂字段csv样式,可以吗?请参阅下面的输入csv格式.
我需要得到第3列和第4列,从第2列剥离填充,我不需要引号.
带编号的Csv格式:12 24(")25(,)26(")/ 27(Field2values)42(")/ 43(,)/ 44(Field3十进制值)"Field1_constant_value","Field2values",Field3,字段4
Field1是不变的,无关紧要的.引用数据,从引号内的2-23开始.Field2用引号内的cols 27-41固定,数据在左边,用右边的空格填充.Field3是十进制数,在小数点前有1,2或3位,后面有2位,没有填充.从col 74开始.Field4是一个约会,我现在不太关心它.
是的,你可以使用阅读; 你要做的就是重置环境变量IFS- 内部字段分隔符 - ,这样它就不会按照当前值(默认为空格)来划分行,而是通过自己的分隔符.
考虑输入文件"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
Run Code Online (Sandbox Code Playgroud)
输出是:
田地[1 2 3 4]
田地[2 3 4 5]
领域[6 3 2 1]