Regex 删除双引号之前的所有内容

Regex 删除双引号之前的所有内容,regex,bash,openrefine,grel,Regex,Bash,Openrefine,Grel,我正在尝试清理一个CSV文件,其中有一列内容如下: Sometexthere1", "code"=>"47.51-2-01"}] 我想删除第一个引号(“)之前的所有内容,以便保留以下内容: Sometexthere1 我知道我可以使用$`在正则表达式中的某些匹配之前获取所有内容,但我不知道如何仅保留第一个双引号之前的字符串。这是否足够好: # Define a variable s='Sometexthere1", "code"=>"47.51-2-01"}]' # expan

我正在尝试清理一个CSV文件,其中有一列内容如下:

Sometexthere1", "code"=>"47.51-2-01"}]
我想删除第一个引号(“)之前的所有内容,以便保留以下内容:

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

这是否足够好:

# 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"
…正确地返回
sometext其中1

这一点做得足够好:

# 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

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

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


> Result : Sometexthere1
您的意思可能是“删除双引号后的所有内容”
?在Open Refine中,您可以使用以下格雷尔公式:

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


> Result : Sometexthere1

给定的样本是行的一部分还是整行?还要添加您试图提问的代码/命令是行的给定样本部分还是整行?还要添加您试图提问的代码/命令删除子字符串和替换子字符串都符合要求。例如
result=“${s/\”*/}”
同样如此。拆除和更换子串都符合要求。e、 g
result=“${s/\”*/}”