awk搜索并替换特定字段

时间:2015-10-07 13:43:56

标签: awk

出于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。但它变得越来越复杂。也许有一种更聪明的方法可以做到这一点?

1 个答案:

答案 0 :(得分:0)

这将修剪数字旁边的所有C

sed -r 's/([0-9])C/\1/g'

如果您只想使用某些字段进行替换,则可以通过awk

更好地控制