出于Excel的目的,我需要创建一个具有精确格式的CSV文件,其中某些列的温度显示为浮点数。这是我的输入文件结构:
'14/11/09 00:00 13.0C 25.1C 26.5C 25.4C 26.3C 25.0C *** *** Some text Control
'14/11/10 08:49 POWER ON
到目前为止,我能够摆脱“点”而不是“逗号”。我有多个文件,我列出了它们。这个列表我传递给我的脚本,它逐行读取它($line
表示输入文件):
grep "'" $line | tr -s " " | sed -e "s/'//g" | cut -d" " -f 1-15 |
grep "\*\*\*" | sed -e "s/\./,/g" > $basename"_measurements.csv"
14/11/09 00:00 13,0C 25,1C 26,5C 25,4C 26,3C 25,0C *** *** Some text Control
Excel不接受13,0C
作为号码。但我根本不知道如何摆脱接近数字的“C”,例如:"13,0C"
等等。我不能在整行上sed
因为我会在列中打破文本(例如,最后一列)。我想在列awk
上使用3-8
并将它们传递给sed
。但它变得越来越复杂。也许有一种更聪明的方法可以做到这一点?
答案 0 :(得分:0)
这将修剪数字旁边的所有C
sed -r 's/([0-9])C/\1/g'
如果您只想使用某些字段进行替换,则可以通过awk