| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 | [discrete][[esql-grok]]=== `GROK`**Syntax**[source,esql]----GROK input "pattern"----*Parameters*`input`::The column that contains the string you want to structure. If the column hasmultiple values, `GROK` will process each value.`pattern`::A grok pattern.*Description*`GROK` enables you to <<esql-process-data-with-dissect-and-grok,extractstructured data out of a string>>. `GROK` matches the string against patterns,based on regular expressions, and extracts the specified patterns as columns.Refer to <<esql-process-data-with-grok>> for the syntax of grok patterns.*Examples*// tag::examples[]The following example parses a string that contains a timestamp, an IP address,an email address, and a number:[source.merge.styled,esql]----include::{esql-specs}/docs.csv-spec[tag=basicGrok]----[%header.monospaced.styled,format=dsv,separator=|]|===include::{esql-specs}/docs.csv-spec[tag=basicGrok-result]|===By default, `GROK` outputs keyword string columns. `int` and `float` types canbe converted by appending `:type` to the semantics in the pattern. For example`{NUMBER:num:int}`:[source.merge.styled,esql]----include::{esql-specs}/docs.csv-spec[tag=grokWithConversionSuffix]----[%header.monospaced.styled,format=dsv,separator=|]|===include::{esql-specs}/docs.csv-spec[tag=grokWithConversionSuffix-result]|===For other type conversions, use <<esql-type-conversion-functions>>:[source.merge.styled,esql]----include::{esql-specs}/docs.csv-spec[tag=grokWithToDatetime]----[%header.monospaced.styled,format=dsv,separator=|]|===include::{esql-specs}/docs.csv-spec[tag=grokWithToDatetime-result]|===// end::examples[]
 |