Need help in find and cp commands


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Need help in find and cp commands
# 1  
Old 09-25-2008
Need help in find and cp commands

I m using the below command for finding a particular file using grep and then copy it.
But the the below command esp the cp is not working

find . -name "CurrentCollector*" -exec grep -l '300173680000D1A8' {} \; | xargs cp {} /ednpdtu7/u01/pipe/current_reprocess -

It's giving the particular error:

cp: ./CurrentCollectorMeterReadBackup_20080709010714909: Function not implemented

--------------------------------------------------------------

It's findin the file CurrentCollectorMeterReadBackup_20080709010714909 but not copying it to the specified dir

plz help me in this
# 2  
Old 09-25-2008
According to the GNU coreutils xargs, you need to specify -I to xargs to tell it to use {} as the substitution glyph.

Code:
find ... | xargs -I {} cp {} target_dir

KSH and Bash don't need the {} quoted, but csh/tcsh does.
# 3  
Old 09-25-2008
i m using this in a script

cd /ednpdtu7/u01/pipe/nav

for i in 300178780001CF60 300179E800021258 300179480001EA7D 300179F800021433 300179980001FD92 300178780001D0CC 300179F800021459 00179C8000206B
D 300179880001FB47 30017A1800021718 30017998000200E0 00179880001FB10 300178780001D091 300179F800021484 300177E80001C712 300177D80001C4F5 30017
738000197A1 300178480001CDCE 300177280001902E 300179D800020A1D 30017728000194C0 30017A58000224C8 30017A6800022D1A 300176D800017EC0 300176C8000
175F1 30017A3800021AB6 30017A280002180F 30017A380002195E 30017A2800021827

do

find . -name "CurrentCollector*" -exec grep -l '$i' {} \; | xargs -I cp /ednpdtu7/u01/pipe/current_reprocess

echo "Completed"
done

-------------------------------------------------------------------

I m doinfg this k-shell . is the above command correct in k-shell
# 4  
Old 09-25-2008
No, you need to use double quotes around $i, not single, and the cp appears to be missing the source file now. You want xargs -i cp {} destination

My version of xargs (GNU findutils, indeed) wants the -i in lower case, unless you specifically want to use a different replacement string than {} (which you need to supply as an argument to the -I option, just like in otheus' example).

Why don't you put all those strings in a file, and use grep -f file (or fgrep -f file)? Running find multiple times in a loop seems hugely inefficient.

Last edited by era; 09-25-2008 at 06:55 AM.. Reason: Suggest fgrep -f file
# 5  
Old 09-25-2008
is the below command correct in k-shell inside a shell script

find . -name "CurrentCollector*" -exec grep -l "$i" {} \; | xargs -I {} cp {} /ednpdtu7/u01/pipe/current_reprocess

and can u tell me how to use grep -f instead of passing so many input to for loop
# 6  
Old 09-25-2008
Good enough. Like era said, you can just use "xargs -i cp {} ..."

You could also use fgrep, but it won't recurse directories (unless it has a -r option).
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Find commands help

hi gurus, I need a example. I am looking for a source code. where I got the keyword "altria_fetch" and also the keyword is present in the file ".pc" files. and it is present in the directory /fast folder. Inside fast there are lot of sub directories present on it. I am not sure how to reach... (8 Replies)
Discussion started by: ramkumar15
8 Replies

2. UNIX for Dummies Questions & Answers

Find process by name and insert commands

I am writing a tcsh script that will open an already-running processs on a system, and give it a command. I want to have something similar to this: http://www.cyberciti.biz/faq/kill-process-in-linux-or-terminate-a-process-in-unix-or-linux-systems/ But I need to be able to find the process and... (5 Replies)
Discussion started by: Adorai
5 Replies

3. UNIX for Advanced & Expert Users

I need help to find some unix commands

Hey everyone, I need some help for some unix commands. - List all processes in the file "ProcessUser.txt" sorted by the users and in the file "ProcessName.txt" sorted by the name of the process. - How much time does the command "ls -alR /" need and compared to that, how much time is... (2 Replies)
Discussion started by: ZOCKER3000
2 Replies

4. UNIX for Dummies Questions & Answers

Find & If commands together

Hi to everybody!! I have a (simple) question but i am newbie with unix and so i need a little help...I am writing a bash script file and i want to put inside this: i have this command " find /usr/bin -name bzip2 -print " that i want to put it in a "if" statement and when it returns true the... (6 Replies)
Discussion started by: orestis7
6 Replies

5. Shell Programming and Scripting

Execute multiple commands in a find

I am checking that a file is older than a reference file that I build with a touch command before processing it. If it is not old enough, I want to sleep for an hour and check again. My problem is if it is old enough to process, I want to exit when I am done, but I cannot find a way to exit... (2 Replies)
Discussion started by: prismtx
2 Replies

6. Shell Programming and Scripting

find filenames like unix commands

Hi, I need to write a small script to search in some specific directories to check if any file is present with a unix command name... Means if the directory contains any files like cat, vi, grep, find etc i need to list those files into a file. Please help Thanks, D (6 Replies)
Discussion started by: deepakgang
6 Replies

7. UNIX for Dummies Questions & Answers

find and grep commands

I'm having trouble with the following commands i. count the number of lines which end in a 4 letter word grep '{4\}$' bfile <<seems to print out everything abc abc abcd joe joe john bob bill gregory greg greg gregory the grep command prints out the lines with 4 letter words and the... (3 Replies)
Discussion started by: StrengthThaDon
3 Replies

8. UNIX for Dummies Questions & Answers

Unix Find commands

thank you for the help (1 Reply)
Discussion started by: scooter17
1 Replies

9. UNIX for Dummies Questions & Answers

Where do I find what commands I can use?

I am new to this unix thing. I have a macintosh with os X and want to learn how to use the unix terminal. What do I need to get started? Does anyone know some good command lines to get started with? Can I use the terminal to check email and get on the internet etc.....?:( (3 Replies)
Discussion started by: JCWorkman
3 Replies

10. UNIX for Dummies Questions & Answers

find commands?

what comand do I use to find usefull comands, common comands? or, where on www? if noone knows, then what comand do I use to run a (bin)file? (3 Replies)
Discussion started by: hallrobe
3 Replies
Login or Register to Ask a Question