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!

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 ...

Optimize Cloud Monitoring

  TECH TALKS Optimize Cloud Monitoring Tuesday, August 13, 2024  |  11:00AM–12:00PM PST   Register to ...

What's New in Splunk Cloud Platform 9.2.2403?

Hi Splunky people! We are excited to share the newest updates in Splunk Cloud Platform 9.2.2403! Analysts can ...