Simply Bash Script to Confirm that there are 2 Files in Same Folder


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Simply Bash Script to Confirm that there are 2 Files in Same Folder
# 8  
Old 12-20-2018
Hi Gull04,

I tested your variant with this...

Code:
stomp@box:~/tmp$ find a
a
a/a.wav
a/A.wav
stomp@box:~/tmp$ find ./ -name 'a.wav' -o -name 'A.wav' -printf '%h\n'
./a
stomp@box:~/tmp$

...and I'm wondering why I have only 1 result. I would expect 2 results, as I understand the command like this: "Search for a file name a.wav or A.wav and print the corresponding parent directory". So why only 1 result here?
# 9  
Old 12-20-2018
hehe, no i dont use linux for almost 10 years now.

thx for your answer, but still same result:


Code:
XXX:[XXX]/voip/old # find ./ -name 'unavail.wav' -o -name 'unavail.WAV' -printf '%#m %u %h\n'
0644 root ./7325
0644 root ./6657
0700 root ./2309
0644 root ./5863
0700 root ./3339
0644 root ./4045
0700 root ./96964
0644 root ./5867
0700 root ./3336
0644 root ./98764
0700 root ./33010
0644 root ./5891
0644 root ./2312
0644 root ./2057
0700 root ./2352
0644 root ./5861
0644 root ./7322
0644 root ./7332
0700 root ./8336
0700 root ./5890
0644 root ./2311
0644 root ./2128
0644 root ./2346
0644 root ./5880
0644 root ./2333
0644 root ./2300
0700 root ./5553
0644 root ./5881
0644 root ./5882
0644 root ./2313
0644 root ./2304
0644 root ./2360
0644 root ./2339
0644 root ./2335
0644 root ./5883
0644 root ./2369
0644 root ./2308
0700 root ./98765
0700 root ./2129
0644 root ./2325
0700 root ./96962
0700 root ./5252
0644 root ./7333
0644 root ./5371
0644 root ./4950
0644 root ./2329
0644 root ./6606
0700 root ./3333
0644 root ./2344
0644 root ./2306
0644 root ./5859
0644 root ./5898
0644 root ./5830
0644 root ./5897
0644 root ./5860
0644 root ./2321
0644 root ./2347
0644 root ./2316
0644 root ./5862
0644 root ./5864
0644 root ./2310
0644 root ./2307
0644 root ./34699
0700 root ./7331
0644 root ./2345
0644 root ./5896
0644 root ./5870
0700 root ./2399
0644 root ./2371
0644 root ./7320
0700 root ./3338
0644 root ./2356
0644 root ./2368
0644 root ./5866
0644 root ./2323
0644 root ./2380
XXX:[XXX]/voip/old #

in none of the founded folders are both files together: unavail.wav & unavail.WAV.
just one of them exist in them:


Code:
XXX:[XXX]/voip/old # ll 7325
insgesamt 12
drwxr-xr-x 2 root root 4096  5. Aug 2011  INBOX
-rw-r--r-- 1 root root 6040  5. Aug 2011  unavail.WAV
XXX:[XXX]/voip/old # ll 5863
insgesamt 12
drwxr-xr-x 2 root root 4096  5. Aug 2011  INBOX
-rw-r--r-- 1 root root 6040  5. Aug 2011  unavail.WAV
XXX:[XXX]/voip/old # ll 3339
insgesamt 20
drwx------ 2 root root  4096  5. Aug 2011  INBOX
-rwx------ 1 root root 12670  5. Aug 2011  unavail.WAV
XXX:[XXX]/voip/old # ll 96964
insgesamt 8
drwxr-xr-x 2 root root 4096  5. Aug 2011  INBOX
-rwx------ 1 root root 3310  5. Aug 2011  unavail.WAV
XXX:[XXX]/voip/old #


so
Code:
find . -name 'unavail.wav' -o -name 'unavail.WAV' | tr A-Z a-z | sort | uniq -cd

worked fine

thx alot : )
# 10  
Old 12-20-2018
Hi,

I'll suggest that it's the way your search parameters are configured, as a simple example see below;

Code:
/-> touch a.txt A.txt
 /-> find / -name "[a,A].txt" -printf '%h\n'
/home/e434069
/home/e434069
 /-> find / -name a.txt -o -name A.txt -printf '%h\n'
/home/e434069
/->

As you can see there are implications for how you configure the find with the or option.

Regards

Gull04
# 11  
Old 12-20-2018
thank you very much. i will work on it =)
# 12  
Old 12-20-2018
Hi,

You can change the find to;

Code:
find / -name "unavail.[W,w][A,a][V,v]" -printf '%#m %u %h\n'

A little bit messy maybe, I'm sure someone will know a better way of doing this.

Regards

Gull04
# 13  
Old 12-20-2018
Quote:
Originally Posted by gull04
...
Code:
 ... 

 /-> find / -name a.txt -o -name A.txt -printf '%h\n'
/home/e434069
/->

As you can see there are implications for how you configure the find with the or option.
...
The reason for above single item output is "operator precedence". man find:
Quote:
Operators
Operators join together the other items within the expression. They include for example -o (meaning logical OR) and -a (meaning logical AND). Where an operator is missing, -a is assumed.
.
.
.
Please note that -a when specified implicitly (for example by two tests appearing without an explicit operator between them) or explicitly has higher precedence than -o. This means that find . -name afile -o -name bfile -print will never print afile.
So above command reads find / -name a.txt -o \(-name A.txt -printf '%h\n' \) as (implied) -a precedes -o. Run
Code:
$ find  \( -name a.txt -o -name A.txt \) -printf '%f\n'
A.txt
a.txt

to overcome the problem.
# 14  
Old 12-20-2018
Thanks Rudi,

I finally understood this now, so I'm at last able to use that find ... -prune thing now after 25 years(was a great mystery to me) ;-)

Last edited by stomp; 12-21-2018 at 06:08 AM..
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Request for Shell script to move files from Subfolder to Parent folder and delete sub folder

Hi Team, I am new to shell script and there is a requirement where files should be moved from Subfolder to parent folder. Eg: parent folder --> /Interface/data/test/IN Sub folder -->/Interface/data/test/IN/Invoice20180607233338 Subfolder will be always with timestamp... (6 Replies)
Discussion started by: srivarun15
6 Replies

2. Shell Programming and Scripting

Bash script read specific value from files of an entire folder

Hello, I heva a problem creating a script that read specifc value from all the files of an entire folder I have a number of email files into a directory and i need to extrect from each file 2 specific values. After that i have to put them into a new file that looks like that: To: value1 ... (1 Reply)
Discussion started by: ahmenty
1 Replies

3. Shell Programming and Scripting

Simply bash script

I have a bash script that has 13 variables and runs commands on them. I've copied the commands 13 times but I'd like to simplify it to simply add 1 to the previous and run 13 times. The variables are dir01=/path/to/dir01 dir01=/path/to/dir02 ... up to 13. (more may be added later) ...... (6 Replies)
Discussion started by: scribling
6 Replies

4. UNIX for Dummies Questions & Answers

Do I need to extract the entire tar file to confirm the tar folder is fine?

I would like to confirm my file.tar is been tar-ed correctly before I remove them. But I have very limited disc space to untar it. Can I just do the listing instead of actual extract it? Can I say confirm folder integrity if the listing is sucessful without problem? tar tvf file1.tar ... (1 Reply)
Discussion started by: vivien_chu
1 Replies

5. Shell Programming and Scripting

Bash script to sort files into folder according to a string in the filename

Hi all. I am very new to linux scripting and i have a task i can only solve with a script. I need to sort files base on the date string in their filenames and create a folder using the same date string then move the files to their respective folders. Scenario: Folder Path:... (1 Reply)
Discussion started by: ace47
1 Replies

6. Shell Programming and Scripting

URGENT!!! bash script to sort files into folder according to a string in the filename

Hi all. I am very new to linux scripting and i have a task i can only solve with a script. I need to sort files base on the date string in their filenames and create a folder using the same date string then move the files to their respective folders. Scenario: Folder Path:... (1 Reply)
Discussion started by: ace47
1 Replies

7. UNIX for Dummies Questions & Answers

Bash script to rename all files within a folder...

Hi. I don't have any experience with making scripts in bash. I need a simple script to rename all files in a folder to the format file1.avi, file2.avi, file3.avi, and so on..... Please note that the original files have different filenames and different extensions. But they all need to be... (2 Replies)
Discussion started by: dranzer
2 Replies

8. Shell Programming and Scripting

Bash folder manipulation - selecting/copying specified files

Bash/scripting newbie here - I feel this might be a trivial problem, but I'm not sure how to tackle it. I've got a folder of a year's worth of files, with some random number of files generated every day of the year (but at least one per day). I'm writing a script to automatically grab the file with... (6 Replies)
Discussion started by: WildGooseChased
6 Replies

9. Shell Programming and Scripting

bash - batch processing folder of files by name

Hello Everyone!!! I need some help with a shellscript to batch process a folder of files with the imagemagick convert -append/+append command. The folder contains some hundred or thousand of small images in .png format which I would like to join together in order of their filenames. The... (3 Replies)
Discussion started by: imtombi
3 Replies

10. Shell Programming and Scripting

script for Finding files in a folder and copying to another folder

Hi all, I have a folder '/samplefolder' in which i have some files like data0.txt, data1.txt and data2.txt. I have to search the folder for existence of the file data0.txt first and if found have to copy it to some other file; next i have to search the folder for existence of file... (5 Replies)
Discussion started by: satish2712
5 Replies
Login or Register to Ask a Question