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!

Accelerate Service Onboarding, Decomposition, Troubleshooting - and more with ITSI’s ...

Accelerate Service Onboarding, Decomposition, Troubleshooting - and more! Faster Time to ValueManaging and ...

New Release | Splunk Enterprise 9.3

Admins and Analyst can benefit from:  Seamlessly route data to your local file system to save on storage ...

2024 Splunk Career Impact Survey | Earn a $20 gift card for participating!

Hear ye, hear ye! The time has come again for Splunk's annual Career Impact Survey!  We need your help by ...