Multiple fileexist:

Discussion related to "Everything" 1.5.
anmac1789
Posts: 745
Joined: Mon Aug 24, 2020 1:16 pm

Multiple fileexist:

Post by anmac1789 »

Is there a way to have multiple fileexist in a regex ? kind of like a check across multiple paths?
void
Developer
Posts: 19871
Joined: Fri Oct 16, 2009 11:31 pm

Re: Multiple fileexist:

Post by void »

Use regex: and ( ) to capture the name.

For example:

regex:^c:\\folderA\\([^\\]*)$



Use as many fileexists: terms as you like to compare with other paths.

fileexists:c:\\folderB\\\1 fileexists:c:\\folderC\\\1 fileexists:c:\\folderD\\\1 fileexists:c:\\folderE\\\1

Use \1 to reference the first regex capture group.
Each fileexists: call takes an absolute path.
Use a space for AND or | for OR.



Examples:

Show files in C:\FolderA where the file exists in C:\FolderB and C:\FolderC and C:\FolderD:

regex:^c:\\folderA\\([^\\]*)$ fileexists:c:\\folderB\\\1 fileexists:c:\\folderC\\\1 fileexists:c:\\folderD\\\1

Show files in C:\FolderA where the file exists in C:\FolderB or C:\FolderC or C:\FolderD:

regex:^c:\\folderA\\([^\\]*)$ fileexists:c:\\folderB\\\1 | fileexists:c:\\folderC\\\1 | fileexists:c:\\folderD\\\1



fileexists:
anmac1789
Posts: 745
Joined: Mon Aug 24, 2020 1:16 pm

Re: Multiple fileexist:

Post by anmac1789 »

void wrote: Wed Apr 12, 2023 7:29 am Examples:

Show files in C:\FolderA when the file exists in C:\FolderB and C:\FolderC and C:\FolderD:

regex:^c:\\folderA\\([^\\]*)$ fileexists:c:\\folderB\\\1 fileexists:c:\\folderC\\\1 fileexists:c:\\folderD\\\1

fileexists:
isn't this supposed to be something like

<regex:^"c:\\folderA\\([^\\]*)$" fileexists:"c:\\folderB\\$1:" fileexists:"c:\\folderC\\$1:" fileexists:"c:\\folderD\\$1:">
or am I missing something here ?
void
Developer
Posts: 19871
Joined: Fri Oct 16, 2009 11:31 pm

Re: Multiple fileexist:

Post by void »

The < > group is not required here.

You'll need to use the < > grouping if you wanted to show files from all paths.

For example, the following will only show files in C:\FolderA (where they also exist in C:\folderB):

regex:^"c:\\folderA\\([^\\]*)$" fileexists:"c:\\folderB\\$1:"



If you wanted to show files in both C:\FolderA and C:\FolderB (where they exist in both paths):

<regex:^"c:\\folderA\\([^\\]*)$" fileexists:"c:\\folderB\\$1:"> | <regex:^"c:\\folderB\\([^\\]*)$" fileexists:"c:\\folderA\\$1:">

They grouping is needed here to OR the two searches.
anmac1789
Posts: 745
Joined: Mon Aug 24, 2020 1:16 pm

Re: Multiple fileexist:

Post by anmac1789 »

void wrote: Wed Apr 12, 2023 11:00 pm The < > group is not required here.

You'll need to use the < > grouping if you wanted to show files from all paths.

For example, the following will only show files in C:\FolderA (where they also exist in C:\folderB):

regex:^"c:\\folderA\\([^\\]*)$" fileexists:"c:\\folderB\\$1:"



If you wanted to show files in both C:\FolderA and C:\FolderB (where they exist in both paths):

<regex:^"c:\\folderA\\([^\\]*)$" fileexists:"c:\\folderB\\$1:"> | <regex:^"c:\\folderB\\([^\\]*)$" fileexists:"c:\\folderA\\$1:">

They grouping is needed here to OR the two searches.
Ok i see, so the path inside regex will show in the results after it finds a match in the other folder. What if I leave the | (OR) ?
void
Developer
Posts: 19871
Joined: Fri Oct 16, 2009 11:31 pm

Re: Multiple fileexist:

Post by void »

The OR (|) is needed, because generally, files will not match both: regex:^"c:\\folderA\\([^\\]*)$" AND regex:^"c:\\folderB\\([^\\]*)$"
anmac1789
Posts: 745
Joined: Mon Aug 24, 2020 1:16 pm

Re: Multiple fileexist:

Post by anmac1789 »

void wrote: Wed Apr 12, 2023 7:29 am Use regex: and ( ) to capture the name.

For example:

regex:^c:\\folderA\\([^\\]*)$



Use as many fileexists: terms as you like to compare with other paths.

fileexists:c:\\folderB\\\1 fileexists:c:\\folderC\\\1 fileexists:c:\\folderD\\\1 fileexists:c:\\folderE\\\1

Use \1 to reference the first regex capture group.
Each fileexists: call takes an absolute path.
Use a space for AND or | for OR.



Examples:

Show files in C:\FolderA where the file exists in C:\FolderB and C:\FolderC and C:\FolderD:

regex:^c:\\folderA\\([^\\]*)$ fileexists:c:\\folderB\\\1 fileexists:c:\\folderC\\\1 fileexists:c:\\folderD\\\1

Show files in C:\FolderA where the file exists in C:\FolderB or C:\FolderC or C:\FolderD:

regex:^c:\\folderA\\([^\\]*)$ fileexists:c:\\folderB\\\1 | fileexists:c:\\folderC\\\1 | fileexists:c:\\folderD\\\1



fileexists:
regex:^c:\\folderA\\([^\\]*)$ all this shows in the results is the parent folders inside the main folder.

Its still confusing to me how to use regex:^c:\\folderA\\([^\\]*)$ fileexists:c:\\folderB\\\1 fileexists:c:\\folderC\\\1 fileexists:c:\\folderD\\\1
void
Developer
Posts: 19871
Joined: Fri Oct 16, 2009 11:31 pm

Re: Multiple fileexist:

Post by void »

Please try the following search to include subfolders and files:

regex:^c:\\folderA\\(.*)$



Use the Regular Expression Match 1 column to see the text being captured.



fileexists: uses the same regex syntax.
Use \1 to recall the captured text.
anmac1789
Posts: 745
Joined: Mon Aug 24, 2020 1:16 pm

Re: Multiple fileexist:

Post by anmac1789 »

void wrote: Fri Apr 14, 2023 12:43 am Please try the following search to include subfolders and files:

regex:^c:\\folderA\\(.*)$



Use the Regular Expression Match 1 column to see the text being captured.



fileexists: uses the same regex syntax.
Use \1 to recall the captured text.
Do you mean something like this:
<regex:^c:\\folderA\\(.*)$" fileexist:"folderB\\$1:"> ??
void
Developer
Posts: 19871
Joined: Fri Oct 16, 2009 11:31 pm

Re: Multiple fileexist:

Post by void »

$1: is the same as \1

The following should give the same results:
<regex:^c:\\folderA\\(.*)$" fileexist:"folderB\\$1:">
<regex:^c:\\folderA\\(.*)$" fileexist:"folderB\\\1">
regex:^c:\\folderA\\(.*)$" fileexist:"folderB\\\1"
anmac1789
Posts: 745
Joined: Mon Aug 24, 2020 1:16 pm

Re: Multiple fileexist:

Post by anmac1789 »

void wrote: Fri Apr 14, 2023 11:42 am $1: is the same as \1

The following should give the same results:
<regex:^c:\\folderA\\(.*)$" fileexist:"folderB\\$1:">
<regex:^c:\\folderA\\(.*)$" fileexist:"folderB\\\1">
regex:^c:\\folderA\\(.*)$" fileexist:"folderB\\\1"
Unfortunately none of the 3 expressions work for me. I have even added quotation to the beginning of " <regex:^ " Same with the other 2 expressions
void
Developer
Posts: 19871
Joined: Fri Oct 16, 2009 11:31 pm

Re: Multiple fileexist:

Post by void »

Could you please share the exact path you are using? or a mock-up at least.
anmac1789
Posts: 745
Joined: Mon Aug 24, 2020 1:16 pm

Re: Multiple fileexist:

Post by anmac1789 »

void wrote: Sat Apr 15, 2023 7:14 am Could you please share the exact path you are using? or a mock-up at least.
Sure, the exact path I am using is from the first regex expression

<regex:^"U:\\regex test folder 1\\(.*)$" fileexist:"U:\\regex test folder 1 \(brackets\)\\$1:">


Screenshot 2023-04-15 032435.jpg
You do not have the required permissions to view the files attached to this post.
void
Developer
Posts: 19871
Joined: Fri Oct 16, 2009 11:31 pm

Re: Multiple fileexist:

Post by void »

Thanks for the sample folders.

You are using fileexist: instead of fileexists:



What results do you see with the search:

<regex:^"U:\\regex test folder 1\\(.*)$" fileexists:"U:\\regex test folder 1 \(brackets\)\\$1:">
anmac1789
Posts: 745
Joined: Mon Aug 24, 2020 1:16 pm

Re: Multiple fileexist:

Post by anmac1789 »

void wrote: Mon Apr 17, 2023 7:00 am Thanks for the sample folders.

You are using fileexist: instead of fileexists:
Lol, good catch that's my mistake
void wrote: Mon Apr 17, 2023 7:00 am What results do you see with the search:

<regex:^"U:\\regex test folder 1\\(.*)$" fileexist:"U:\\regex test folder 1 \(brackets\)\\$1:">
There is a typo above, it should be fileexists with the added plural -"s" added. Here is a screenshot of the above syntax,

Screenshot 2023-04-17 114553.jpg

This only shows note.txt in the top level. It doesn't show note.txt in subfolders
You do not have the required permissions to view the files attached to this post.
void
Developer
Posts: 19871
Joined: Fri Oct 16, 2009 11:31 pm

Re: Multiple fileexist:

Post by void »

I made the same typo!


Please try the following search to find both:

<regex:^"U:\\regex test folder 1\\(.*)$" fileexists:"U:\\regex test folder 1 \(brackets\)\\$1:"> | <regex:^"U:\\regex test folder 1 \(brackets\)\\(.*)$" fileexists:"U:\\regex test folder 1\\$1:">
anmac1789
Posts: 745
Joined: Mon Aug 24, 2020 1:16 pm

Re: Multiple fileexist:

Post by anmac1789 »

void wrote: Wed Apr 19, 2023 10:54 am I made the same typo!


Please try the following search to find both:

<regex:^"U:\\regex test folder 1\\(.*)$" fileexists:"U:\\regex test folder 1 \(brackets\)\\$1:"> | <regex:^"U:\\regex test folder 1 \(brackets\)\\(.*)$" fileexists:"U:\\regex test folder 1\\$1:">
Yes this syntax finds diplicate files from both folders. Is therr a way to find a duplicate file in predefined deeper level subfolders or would something more simpler than regex be used for that purpose lioe path/* ?