Splunk® Enterprise

Search Manual

Splunk Enterprise version 9.0 will no longer be supported as of June 14, 2024. See the Splunk Software Support Policy for details. For information about upgrading to a supported version, see How to upgrade Splunk Enterprise.

Extract fields with search commands

You can use search commands to extract fields in different ways.

  • The rex command performs field extractions using named groups in Perl regular expressions.
  • The extract (or kv, for key/value) command explicitly extracts field and value pairs using default patterns.
  • The multikv command extracts field and value pairs on multiline, tabular-formatted events.
  • The spath command extracts field and value pairs on structured event data, such as XML and JSON.
  • The xmlkv and xpath commands extract field and value pairs on XML-formatted event data.
  • The kvform command extracts field and value pairs based on predefined form templates.

In Splunk Web, you can define field extractions on the Settings > Fields > Field Extractions page.

The following sections describe how to extract fields using regular expressions and commands. See About fields in the Knowledge Manager Manual.

Extract fields using regular expressions

The rex command performs field extractions using named groups in Perl regular expressions that you include in the search criteria. The rex command matches segments of your raw events with the regular expression and saves these matched values into a field.

In this example, values that occur after the strings From: and To: are saved into the from and to fields.

... | rex field=_raw "From: (?<from>.*) To: (?<to>.*)"

If a raw event contains From: Susan To: Bob, the search extracts the field name and value pairs: from=Susan and to=Bob.

For a primer on regular expression syntax and usage, see www.regular-expressions.info. The following are useful third-party tools for writing and testing regular expressions:

Extract fields from .conf files

The extract command forces field/value extraction on the result set. If you use the extract command without specifying any arguments, fields are extracted using field extraction stanzas that have been added to the props.conf file. You can also use the extract command to test field extractions that you add to the conf files.

Extract fields from events formatted as tables

Use the multikv command to force field and value extractions on multiline, tabular-formatted events. The multikv command creates a new event for each table row and derives field names from the table title.

Extract fields from events formatted in XML

The xmlkv command enables you to force field and value extractions on XML-formatted tags in event data, such as transactions from web pages.

Extract fields from XML and JSON documents

The spath command extracts information from structured data formats, such as XML and JSON, and store the extracted values in fields.

Extract fields from events based on form templates

The kvform command extracts field and value pairs from events based on form templates that are predefined and stored in $SPLUNK_HOME/etc/system/local/, or your own custom application directory in $SPLUNK_HOME/etc/apps/. For example, if form=sales_order, the search looks for a sales_order.form, and matches all processed events against that form to extract values.

For Splunk Cloud Platform, you must create a private app to extract fields using form templates. If you are a Splunk Cloud administrator with experience creating private apps, see Manage private apps in your Splunk Cloud deployment in the Splunk Cloud Admin Manual. If you have not created private apps, contact your Splunk account representative for help with this customization.

Last modified on 17 July, 2021
Use lookup to add fields from lookup tables   Evaluate and manipulate fields with multiple values

This documentation applies to the following versions of Splunk® Enterprise: 7.0.0, 7.0.2, 7.0.3, 7.0.4, 7.0.5, 7.0.6, 7.0.7, 7.0.8, 7.0.9, 7.0.10, 7.0.11, 7.0.13, 7.1.0, 7.1.1, 7.1.2, 7.1.3, 7.1.4, 7.1.5, 7.1.6, 7.1.7, 7.1.8, 7.1.9, 7.1.10, 7.2.0, 7.2.1, 7.2.2, 7.2.4, 7.2.5, 7.2.6, 7.2.7, 7.2.8, 7.2.9, 7.2.10, 7.3.0, 7.3.1, 7.3.2, 7.3.3, 7.3.4, 7.3.5, 7.3.6, 7.3.7, 7.3.8, 7.3.9, 8.0.0, 8.0.1, 8.0.2, 8.0.3, 8.0.4, 8.0.5, 8.0.6, 8.0.10, 8.1.0, 7.2.3, 8.0.8, 7.0.1, 8.0.7, 8.1.2, 8.1.3, 8.1.4, 8.1.5, 8.1.6, 8.1.7, 8.1.8, 8.1.9, 8.1.11, 8.1.12, 8.1.13, 8.1.14, 8.2.0, 8.2.1, 8.2.2, 8.2.3, 8.2.4, 8.2.5, 8.2.6, 8.2.7, 8.2.8, 8.2.9, 8.2.10, 8.2.11, 8.2.12, 9.0.0, 9.0.1, 9.0.2, 9.0.3, 9.0.4, 9.0.5, 9.0.6, 9.0.7, 9.0.8, 9.0.9, 9.0.10, 9.1.0, 9.1.1, 9.1.2, 9.1.3, 9.1.4, 9.1.5, 9.2.0, 9.2.1, 9.2.2, 8.0.9, 8.1.1, 8.1.10

Was this topic useful?

You must be logged into splunk.com in order to post comments. Log in now.

Please try to keep this discussion focused on the content covered in this documentation topic. If you have a more general question about Splunk functionality or are experiencing a difficulty with Splunk, consider posting a question to Splunkbase Answers.

0 out of 1000 Characters