Sponsored Content
Full Discussion: Problem with find
Top Forums Shell Programming and Scripting Problem with find Post 302870811 by Don Cragun on Monday 4th of November 2013 08:02:49 PM
Old 11-04-2013
Quote:
Originally Posted by tempestas
Hi,



I want to rename folders and the respective files in those folders. Problem: both, folders and files, contain funny characters: umlauts and spaces and special characters.



Yes, I do have read and write permissions.



Code:
for i in *.pdf
do
	mv "$i" E-test.pdf
done

Not exactly. There can be files in these folders containing the string "EV" or "GV", and these files have to be named differently from the other files, i.e. "E-test.pdf" and "G-test.pdf", respectively.

I hope it's now clearer what I am trying to do.
I just don't understand why my first "find" loop does not work.

Any ideas?


Thanks a lot in advance!

tempestas
The loop I showed you above may not be what you want to do, but it is EXACTLY what the code you provided will do!

The command:
Code:
find . -name "EV"

finds and prints the pathname of every file in and under the current directory where the final component of that pathname is EV. (Not a name containing EV; a name that is exactly EV.) And the exit status from that find command will be zero no matter how many pathnames it prints. So, whether or not find finds any files named EV, it won't affect the behavior of the rest of your script.

By convention, a filename ending with .pdf should be a regular file encoded in the portable document format invented by Adobe. If your filenames follow this convention, there is absolutely nothing in your script that will rename any directories. Furthermore, with the code you have shown us, as I said before, every file in the file hierarchy rooted in the current directory whose name ends with .pdf will be moved (one at a time) to E-test.pdf until you only have one filename ending with .pdf and that file will be named E-test.pdf.

Please show us a list of directories and files in those directories and explain what changes to those files you want your script to perform. If we can figure out what you want to do, maybe we can help you write a script that will do it.

But, trust us, the script you showed us will not do anything at all like what you seem to want this script to do.
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Another Find Problem

HI All, I am having a bit of trouble using the find command in my shell (korn) script. I was hoping someone could help me. I am trying to build up a dynamic find command based on some parameters. When I execute the command I get the following error: find: incomplete statement I have... (6 Replies)
Discussion started by: sethkor
6 Replies

2. Shell Programming and Scripting

Problem with `find ...`

Hi all, Have the following snippet of code that I'm having trouble trying to work ... The snippet of code is running on our Production Server and the intent is to copy the second most recent IDE file across from the Development Server. I have the following files defined in $DEVLOC ...... (4 Replies)
Discussion started by: Cameron
4 Replies

3. Shell Programming and Scripting

problem with find

Hi, Iam having a strange problem, wandering if soneone can throw some lights. I have statement find . -maxdepth 1 -name 'File1*.tsv' -mtime +1 -print I expect the above statement to print the files older than 1 day or 24 hrs, however it doesn't work that way. When issue above command,... (2 Replies)
Discussion started by: braindrain
2 Replies

4. UNIX for Dummies Questions & Answers

Problem with find and tar

When I am doing the first command the result shows all the files, links, directories except the ones that contain the word logs find . -type f -o -type l -o -type d | grep -v logs But when I am trying to do this even the logs are getting tarred tar -cvf fdtvision.tar `find . -type f -o -type l... (2 Replies)
Discussion started by: venu_nbk
2 Replies

5. UNIX for Dummies Questions & Answers

problem with find and mtime

I am using HP-UNIX , The below command doesnt display anything although i have changed a file in the directory by toutch -t 200010101800 nfile find /tmp/transfer/ -name "*.*" -mtime +1 Any problrm with the find command i written . .Please help ??.. Thanks, Arun (4 Replies)
Discussion started by: arunkumar_mca
4 Replies

6. Shell Programming and Scripting

Find command problem

Hi All, I am using following find command to delete the records older than 7 days but getting missing conjuction error.Kindly suggest: The command is: find <complete_dir_path> \(! -name usr -prune \) -type f -name "*.txt" -mtime +6 -print | xargs rm (11 Replies)
Discussion started by: visingha
11 Replies

7. Shell Programming and Scripting

Problem with find command.

I'm trying to display the full file name (including the full path) and file size of all files whose name (excluding the path) is longer than 10 characters. I came up with find path -type f -name ".{10, }" -printf "%s %p\n", but I'm getting a "find: path: No such file or directory". What's wrong... (2 Replies)
Discussion started by: raidkridley
2 Replies

8. Shell Programming and Scripting

find problem

for index in `find /root -name *.jar | grep "/lib"`; do echo "$index"; done sometimes its throwing error saying find: paths must precede expression Usage: find some1 suggested me that : Code: for index in `find /technologies -name '*.jar' | grep "/lib"` do echo "$index"... (2 Replies)
Discussion started by: crackthehit007
2 Replies

9. Shell Programming and Scripting

find problem

Hi I want to find files with size +10000M and specified directorys except when i use more than one `-name` acton is fail I try -a (and) and -o (-or) but results fail :( find . \( -name ./oracle* -prune -o -name "*arc*" -prune -o -name "*oracle*" -prune -o -size +10000k \) -exec ls -lh {}... (7 Replies)
Discussion started by: ygemici
7 Replies

10. Shell Programming and Scripting

Problem with find command "find: cannot open"

Hello Guys , I am trying to run below find command in one of my SH script on a HP UX machine. find /tmp -type f -name "MGCA*.log" -prune -exec rm -f {} \; 2>&1 I want this to check my tmp directory and delete MGCA log files .But below error message is printed on Promt :- find: cannot... (2 Replies)
Discussion started by: himanshu sood
2 Replies
All times are GMT -4. The time now is 10:33 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy