在双引号之前删除所有内容

时间:2017-07-29 05:00:13

标签: regex bash openrefine grel

我试图清理一个CSV文件,其中包含一个包含以下内容的列:

Sometexthere1", "code"=>"47.51-2-01"}]

我想删除第一个引号(")之前的所有内容,以便保持这一点:

Sometexthere1

我知道我可以使用$`在regex中的某些匹配之前获取所有内容,但我不知道如何在第一个双引号之前保留字符串。

2 个答案:

答案 0 :(得分:2)

Parameter expansion做得很好:

# Define a variable
s='Sometexthere1", "code"=>"47.51-2-01"}]'

# expand it, removing the longest possible match (from the end) for '"'*
result=${s%%'"'*}

# demonstrate that result by printing it
printf '%s\n' "$result"

...正确返回Sometexthere1

答案 1 :(得分:0)

你可能的意思是“在双引号后删除所有”?在Open Refine中,您可以使用此GREL公式:

value.replace(/".+/, "")


> Result : Sometexthere1