首页 > 解决方案 > 查找替换为带有多余引号的 sed

问题描述

将高度测量值从英制单位转换为公制单位相关,但采用不同的方法。

我有一个数据集,其中有许多混合单位的值,特别是用英制和公制单位测量高度。此外,无论出于何种原因,所述英制尺寸包含过多的引号。

我曾认为,不是执行转换,而是大规模查找替换可能会起作用,因为人们的身高相对受到限制。例如,身高 5 英尺 3 英寸的人身高 160.02 厘米,因此可以找到所有的一个并用另一个替换它。

考虑数据集 test.csv 中的这一行

"Female","Hispanic",25,"5' 11"""

我想用“180.34”替换“5' 11”“”。

我已经尝试过sed -i 's#"5' 1"""#"180.34"#g' test.csv,但唯一的结果输出是>我的终端窗口中的一个字符,这表明我做错了什么,但不能完全弄清楚是什么。我是否缺少处理多余引号的东西?

标签: sedreplacedouble-quotes

解决方案


问题是 sed 表达式中的单引号5' 1

用于\x27替换单引号:

sed -i 's#"5\x27 1"""#"180.34"#g' test.csv

推荐阅读