Sponsored Content
Full Discussion: Problem with find
Top Forums Shell Programming and Scripting Problem with find Post 302870861 by tempestas on Tuesday 5th of November 2013 04:41:42 AM
Old 11-05-2013
Hello,

Quote:
But, trust us, the script you showed us will not do anything at all like what you seem to want this script to do.
I am a bit shocked. It's been a while since I have programmed but usually my programs worked in the end. Have I really forgotten everything?

Anyways, here is what I wanna do:
I have a folder structure looking like this:

Code:
./Allfolders/M++ller Bert/xx M++ller EV.pdf
./Allfolders/M++ller Bert/xx M++ller.pdf
./Allfolders/N+ñme Firstname + Secondname Secondfirstname/xx Naeme + Secondname.pdf
./Allfolders/N+ñme Firstname + Secondname Secondfirstname/xx Naeme + Secondname EV.pdf
./Allfolders/Random Na-me/xx Random EV.pdf
./Allfolders/Random Na-me/xx Random.pdf
./Allfolders/Specialist S+Âhnke/xx GV Specialist.pdf
./Allfolders/Specialist S+Âhnke/xx Specialist.pdf
./scripts/list_rename.sh
./scripts/rename.sh

The result should look like this:
Code:
./Allfolders/Mueller_Bert/xx_EV_Mueller.pdf
./Allfolders/Mueller_Bert/xx_V_Mueller_AB_20130220.pdf
./Allfolders/Naeme_Firstname/xx_V_Naeme_CD_20100119.pdf
./Allfolders/Naeme_Firstname/xx_EV_Naeme.pdf
./Allfolders/Random_Na-me/xx_EV_Random.pdf
./Allfolders/Random_Na-me/xx_V_Random_CD_20070315.pdf
./Allfolders/Specialist S+Âhnke/xx_GV_Specialist.pdf
./Allfolders/Specialist S+Âhnke/xx_V_Specialist_AB_20090917.pdf
./scripts/list_rename.sh
./scripts/rename.sh

My attempt of a script is this:
Code:
#!/bin/bash
pathscripts="$PWD"
cd ..
cd Allfolders
if [[ ! -d $1 ]]
	then
	echo "$1 does not exist. Exiting..."
	echo "check $1" >> ../scripts/logfile.txt
	exit 1
	else
		mv "$1/" $2
		lastname=`echo "$2" | cut -d'_' -f1`;
		d=`echo "$3" | cut -d'.' -f1`
		m=`echo "$3" | cut -d'.' -f2`
		y=`echo "$3" | cut -d'.' -f3`
		cd $2
		for i in *.pdf
		do
		if find . -name "EV"
			then
			mv "$i" xx_EV_${lastname}.pdf
		elif find . -name "*GV*"
			then
			mv "$i" xx_GV_${lastname}.pdf
		else
			mv "$i" xx_V_${lastname}_$3_$y$m$d.pdf 
		fi
		done	
fi
cd $pathscripts

And the respective file containing the arguments:
Code:
#!/bin/bash
./rename.sh "M++ller Bert" Mueller_Bert 20.02.2013 AB
./rename.sh "N+ñme Firstname + Secondname Secondfirstname" Naeme_Firstname 19.01.2010 CD
./rename.sh "Random Na-me" Random_Name 15.03.2007 CD
./rename.sh "Specialist S+Âhnke" Specialist_Soehnke 17.09.2009 AB

I would have preferred a more general approach just like:
Code:
for folder in Allfolders/*; do
  if [[ -d "$folder" ]]; then
	newname=`echo "$folder" | sed 's/ /_/g;s/ä/ae/g;s/Ä/Ae/g;s/ü/ue/g;s/Ü/Ue/g;s/ö/oe/g;s/Ö/Oe/g;s/ß/ss/g;s/+/-/g;'`
    mv "$folder" "$newname"
  fi
done

But this does not work due to encoding problems. I took the folder structure zipped from a windows server. If I unpack it using the Mac OSX tools, it would ignore the umlauts, just convert spaces to "_". So, I unpacked the zip folder on a windows machine and so I can at least convert the umlauts.

I hope I could make it clear what the situation is and what I want to get in the end.

Thank you SO much for advices and help!

tempestas

PS: the .pdf files are created from scans, i.e. these are images.
 

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 08:57 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy