# If you'd like to omit non-matching lines from the result; add ';d' to the end of the expression.
sed -E 's/(\n|;|^)"([^";\n]*?)"([^";\n]+?)"([^";\n]*?)"(\n|;|$)/\1"\2""\3""\4"\5/g;t' <<< "A stable and simple RegEx, which escapes double-quotes (\") in a CSV file.
## Tests ##
\"Great thing?!*\";\"I love RegEx!\";\"And especially \"regex101.com\"!\";\"Just amazing...\"
\"Something090324*?!*\";\"Somethi\"ng090\"324*?!*\";\"Something090324*?!*\";\"Something090324*?!*\"
Ignore\"THIS\"ItIsNotARealQuote?!*;\"This\"is\"real!\";HereIsNoQuoteSymbolAtAll;This\"IsOnlyOneQuoteSymbol
CSV: Escape double-quotes (\") in quoted
## Issues ##
- Does not support embedded line breaks, but you can easily modify it to support them. Note that they are currently forbitten to be more stable.
- Does only allow \" for quoting. (Replace it in the whole RegEx to change this)
- Only works with ; as a separator. (Replace it in the whole RegEx to change this)
- Does not allow separator character inside of quotes string. Look at the following example:
\"Example \"string\"\";\"works\"
\"Example \"string\";\";\"fails\"
- Get's problems when the issue happens \"too often\", which means it shows up in cells which are directly side-by-side. You may work around this issue by running it multiple times:
\"run 1 time \";\"a string with a \"small\" issue\";\"and \"another\" one\"
\"run 2 times\";\"a string with a \"\"small\"\" issue\";\"and \"another\" one\"
- It only works with quoted strings (no single \" are escaped; only double ones)
## Changelog ##
v1.0 - 2016-01-25
- released
Author: rugk <rugk@posteo.de>"
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for SED, please visit: https://www.gnu.org/software/sed/manual/html_node/The-_0022s_0022-Command.html