Удалить все до двойной кавычки
Я пытаюсь очистить CSV-файл, в котором есть столбец с таким содержимым:
Sometexthere1", "code"=>"47.51-2-01"}]
И я хотел бы удалить все до первой кавычки ("), чтобы сохранить только это:
Sometexthere1
Я знаю, что могу использовать $`, чтобы получить все до некоторого совпадения в регулярном выражении, но я не понимаю, как сохранить только строку перед первой двойной кавычкой.
2 ответа
Решение
Вы, вероятно, имеете в виду "удалить все после двойной кавычки"? В Open Refine вы можете использовать эту формулу GREL:
value.replace(/".+/, "")
> Result : 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"
... правильно возвращается Sometexthere1
,