【发布时间】:2019-10-06 16:19:13
【问题描述】:
我正在尝试对通用格式的行执行以下替换:
BBBBBBB.2018_08,XXXXXXXXXXXXX,01/01/2014,"109,07",DF,CCCCCCCCCCC, .......
如您所见,问题在于它是一个逗号分隔的文件,其中包含一个逗号小数的特定字段。我想用一个点来代替它。
我试过这个,以替换匹配后第一次出现的模式,但无济于事,有人可以帮助我吗?
sed -e '/,"/!b' -e "s/,/./"
sed -e '/"/!b' -e ':a' -e "s/,/\./"
提前致谢。 awk 或 perl 解决方案也会对我有所帮助。这是一个 awk 的努力:
gawk -F "," 'substr($10, 0, 3)==3 && length($10)==12 { gsub(/,/,".", $10); print}'
这产生了相同的文件不变。
【问题讨论】: