我试图清理一个CSV文件,其中包含一个包含以下内容的列:
Sometexthere1", "code"=>"47.51-2-01"}]
我想删除第一个引号(")之前的所有内容,以便保持这一点:
Sometexthere1
我知道我可以使用$`在regex中的某些匹配之前获取所有内容,但我不知道如何在第一个双引号之前保留字符串。
答案 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