我有一个输入数据文件(data.csv),格式如下,我需要更新它才能得到结果
ABC,SOME CONTENT,XYZ,SOME CONTENT,,#AB DEF,,,,,,,,,,,0.1,,
ABC,SOME CONTENT,XY1,SOME CONTENT,,#AB DEF,,,,,,,,,,,0.1,,
ABC,SOME CONTENT,XY2,SOME CONTENT,,#AB DEF,,,,,,,,,,,0.1,,
ABC,SOME CONTENT,XY3,SOME CONTENT,,#AB DEF,,,,,,,,,,,0.1,,
我的条件是我有一个文件(input.txt),其中包含以下内容
XYZ
XY3
我需要为input.txt中的每个值检查data.csv中的记录,并将列中的值从#AB DEF
更新为#in some country
,并仅针对相应的记录将值从0.1
更新为0
,然后将其放回同一文件中。
结果:
ABC,SOME CONTENT,**XYZ**,SOME CONTENT,,**#in some country**,,,,,,,,,,,**0**,,
ABC,SOME CONTENT,**XY1**,SOME CONTENT,,**#AB DEF**,,,,,,,,,,,**0.1**,,
ABC,SOME CONTENT,**XY2**,SOME CONTENT,,**#AB DEF**,,,,,,,,,,,**0.1**,,
ABC,SOME CONTENT,**XY3**,SOME CONTENT,,**#in some country**,,,,,,,,,,,**0**,,
我尝试了下面的命令(我不确定如何检查sed命令中的条件),它更新了所有记录,我知道这是因为结尾的g
,但不确定如何将其限制为仅限于与我的条件XYZ
匹配的记录
sed -i "s|#AB DEF,,,,,,,,,,,0.1,,|#in some country,,,,,,,,,,,0,,|g" data.csv
我必须在数据中包含#
和spaces
,我尝试将数据放入变量中并尝试替换它,但sed识别出有特殊字符,但失败了。
暂无答案!
目前还没有任何答案,快来回答吧!