Splunk Search

How to extract file name from path's for both windows and nix format?



We have a data source containing File Path's from both Windows and Linux formats.  Applying regex separately works but how can I extract all file names regardless of format in a single search?

Following works for all Windows path's but for Linux, entire path gets extracted as file_name


| rex field=file_path "(?P<file_name>[^\\\]+)$"


 whereas this one works for Linux but does nothing on the Windows path.


 | rex field=file_path ".*\/(?<file_name>.*)$"



Is there a way to use both in same search? or a new regex that would work on either of the two formats?


Labels (1)
0 Karma

Esteemed Legend

| rex field=file_path "([^\r\n\s\\\/]+[\\\/])+(?<file_name>.*)$"

0 Karma



Is this what you are looking for?

| makeresults 
| eval file_path="/as/bsb/asda/file.txt|c:\asda\asdadaa\aa\file.txt"
| eval file_path = split(file_path,"|")
| mvexpand file_path
``` Previous prepare sample data ```
| rex field=file_path "(?P<file_name>[^\\/\\\]+)$"

r. Ismo

0 Karma

Path Finder


 | rex field=file_path "(?<file_name>[^\/\\\]+\..+)$"


Negation for / and \, match everything that has at least one dot. Tested on:


0 Karma


This regex works in my limited testing.

| rex field=file_path "(?<file_name>[^\/\\]+)$"
If this reply helps you, Karma would be appreciated.
0 Karma
Get Updates on the Splunk Community!

Stay Connected: Your Guide to July and August Tech Talks, Office Hours, and Webinars!

Dive into our sizzling summer lineup for July and August Community Office Hours and Tech Talks. Scroll down to ...

Edge Processor Scaling, Energy & Manufacturing Use Cases, and More New Articles on ...

Splunk Lantern is a Splunk customer success center that provides advice from Splunk experts on valuable data ...

Get More Out of Your Security Practice With a SIEM

Get More Out of Your Security Practice With a SIEMWednesday, July 31, 2024  |  11AM PT / 2PM ETREGISTER ...