移除数据第三列中的+符号并保存至新文件的实现方法咨询
移除数据第三列中的+符号并保存至新文件的实现方法咨询
嗨,我来帮你搞定这个问题!针对你给出的这份带时间戳的数值数据,我们可以用几种简单高效的命令行工具快速完成第三列+号的移除,同时把处理后的内容保存到新文件里,下面给你详细介绍两种常用方法:
方法一:用awk按列精准处理(推荐)
awk是处理结构化文本的利器,它可以按列分割数据,针对性修改第三列的内容,完全不会影响其他列的格式。假设你的原始数据保存在input.txt文件里,运行下面的命令就能直接生成处理好的output.txt:
awk -F ',' '{gsub(/^\+/, "", $3); printf "%s,%s,%s,%s\n", $1, $2, $3, $4}' input.txt > output.txt
命令说明:
-F ',':指定逗号作为列的分隔符,让awk能准确识别每一列gsub(/^\+/, "", $3):专门对第三列($3)做替换,把开头的+号替换成空字符串printf ...:按原格式拼接所有列并输出,保证输出的格式和原始数据一致> output.txt:把处理后的结果重定向保存到新文件
方法二:用sed做文本匹配替换
如果你更习惯用sed,也可以通过匹配第三列的特征来完成替换,命令如下:
sed 's/,\s*+\([0-9.]\+\)/,\1/g' input.txt > output.txt
命令说明:
s/,\s*+\([0-9.]\+\)/,\1/g:匹配逗号后可能存在的空格(\s*),接着是+号和后续的数字/小数点,把这部分替换成逗号加后面的数值,从而去掉+号- 同样用
> output.txt把结果保存到新文件
处理后的效果示例
处理后的output.txt内容会变成这样:
2022-03-17 00:01:00, 55.0,30.9, 72.3
2022-03-17 00:01:30, 55.0,30.8, 72.3
2022-03-17 00:02:02, 53.0,30.9, 72.4
2022-03-17 00:02:33, 50.0,30.9, 72.3
2022-03-17 00:03:04, 50.0,30.9, 72.0
2022-03-17 00:03:35, 54.0,31.0, 72.1
2022-03-17 00:04:06, 55.0,30.9, 72.2
备注:内容来源于stack exchange,提问作者Latifa Hanum Zain
相关产品推荐
相关产品推荐

