xargs command


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting xargs command
# 1  
Old 06-08-2011
xargs command

Hi

The command below does not work. what I am doing wrong ?
For some reason second part of the xargs command is not does what I expect
If I get this working I intend to use it for multiple file rename later.
Code:
echo archDP105144_1_702159963.dbf|xargs -i cp {} `echo {}|awk '{sub(/DP1/,"TML");print}'`

with set -x
Code:
echo archDP105144_1_702159963.dbf|xargs -i cp {} `echo {}|awk '{sub(/DP1/,"TML");print}'`
++ echo '{}'
+ echo archDP105144_1_702159963.dbf
++ awk '{sub(/DP1/,"TML");print}'
+ xargs -i cp '{}' '{}'

Thanks

Last edited by Franklin52; 06-09-2011 at 03:33 AM.. Reason: Please use code tags
# 2  
Old 06-08-2011
Code:
xargs -I

# 3  
Old 06-09-2011
Thanks for prompt reply. But it does not work for me. Did you try it in your environment? I tried on linux BASH and Sun KSH
Code:
echo archDP105144_1_702159963.dbf|xargs -I cp {} `echo {}|awk '{sub(/DP1/,"TML");print }'`
++ echo '{}'
+ echo archDP105144_1_702159963.dbf
++ awk '{sub(/DP1/,"TML");print }'
+ xargs -I cp '{}' '{}'
xargs: {}: No such file or directory


Last edited by Franklin52; 06-09-2011 at 03:33 AM.. Reason: Please use code tags
# 4  
Old 06-09-2011
why can't you use simple for loop?

Code:
 
for file in *DP1*.dbf ; do
cp ${file} `echo ${file}|awk '{sub(/DP1/,"TML");print}'`
done

# 5  
Old 06-09-2011
Code:
echo archDP105144_1_702159963.dbf|xargs -i cp {} `echo archDP105144_1_702159963.dbf |awk '{sub(/DP1/,"TML");print}'`

# 6  
Old 06-09-2011
Quote:
Originally Posted by michaelrozar17
Code:
echo archDP105144_1_702159963.dbf|xargs -i cp {} `echo archDP105144_1_702159963.dbf |awk '{sub(/DP1/,"TML");print}'`

This won't help him in renaming multiple files.
# 7  
Old 06-09-2011
Code:
for i in *D1P*.dbf
do
cp $i "${i%%D1P*}TML${i##*D1P}"
done

Note that my code assume the D1P pattern does not occure more than once per filename

Code:
$ ls -1 *D1P*
archD1P_10_whatever.dbf
archD1P_1_whatever.dbf
archD1P_2_whatever.dbf
archD1P_3_whatever.dbf
archD1P_4_whatever.dbf
archD1P_5_whatever.dbf
archD1P_6_whatever.dbf
archD1P_7_whatever.dbf
archD1P_8_whatever.dbf
archD1P_9_whatever.dbf
$ for i in *D1P*
> do
> echo cp $i "${i%%D1P*}TML${i##*D1P}"
> done
cp archD1P_10_whatever.dbf archTML_10_whatever.dbf
cp archD1P_1_whatever.dbf archTML_1_whatever.dbf
cp archD1P_2_whatever.dbf archTML_2_whatever.dbf
cp archD1P_3_whatever.dbf archTML_3_whatever.dbf
cp archD1P_4_whatever.dbf archTML_4_whatever.dbf
cp archD1P_5_whatever.dbf archTML_5_whatever.dbf
cp archD1P_6_whatever.dbf archTML_6_whatever.dbf
cp archD1P_7_whatever.dbf archTML_7_whatever.dbf
cp archD1P_8_whatever.dbf archTML_8_whatever.dbf
cp archD1P_9_whatever.dbf archTML_9_whatever.dbf
$

(here i put a "echo" just to display the command so that you can check it behaves has expected, if ok, then just remove the 'echo' and rerun the 'for' loop with the real cp command

Last edited by ctsgnb; 06-09-2011 at 05:01 AM..
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Xargs -P command execution status

Hi, I am working on a file copier utility where I have written the copy commands to a batch file e.g. file_copier.bat which i pass to xargs command as follows. cat file_copier.bat | xargs -n 1 -P 40 I also want to record the copy command status of each file/command in the form "command... (1 Reply)
Discussion started by: ankur singh
1 Replies

2. Shell Programming and Scripting

Looking for XARGS command Silent options

ls | grep -E '^+$' | xargs --verbose -I{} rm -vfr "{}"; When i execute the command it works fine by removing the directories and its writing the output as below about which files are deleting.What i want know is,is there any XARGS command option that it should done silently in background with... (2 Replies)
Discussion started by: nareshreddy443
2 Replies

3. Shell Programming and Scripting

Pipe output a command to another using xargs

xargs work great when a command gives multiple line output which can be input to another. In my case it is not working coz the second command uses two words in it. $ scr.sh gives output like 193740 638102 375449 .. .. another command takes these number as inputs. it works great... (1 Reply)
Discussion started by: mahesh113
1 Replies

4. Shell Programming and Scripting

need help with xargs command..

ls -lrt | awk '$7==12{print $9}' | xargs -i mv {} $dir i executed this command but $dir does not exists....... and the files hv been moved but i dont know where ..... plz help(ASAP) thanks in advance. (8 Replies)
Discussion started by: guptam
8 Replies

5. Shell Programming and Scripting

Doubt in xargs command

Hi, What is the difference in capitalizing the option 'i' of xargs command, (i.e) xargs -i and xargs -I? Also, what is the difference between the below 2 commands? output_from_cmd | xargs -I {} grep '{}' file output_from_cmd | xargs -I grep '{}' file Any efficiency or performance... (4 Replies)
Discussion started by: royalibrahim
4 Replies

6. Shell Programming and Scripting

xargs command problem

Hi I am trying to use "xargs" command to loop through each file, modify it and overwrite the old file with the modification but with the same file name. I thought it is easy but I just can't get it to work I tried the following I thought {} would give me the current file name, but it... (1 Reply)
Discussion started by: tiger66
1 Replies

7. UNIX for Dummies Questions & Answers

querry about xargs command

what is the real use of xargs command ..? ls -tr |xargs -I{} rm -f {} ....can any one tell me what is the significance of {} curly brackets in this command (1 Reply)
Discussion started by: mobydick
1 Replies

8. AIX

command usage on find with xargs and tar

my task : tar up large bunch of files(about 10,000 files) in the current directories that created more than 30 days ago but it come with following error find ./ -ctime +30 | xargs tar rvf test1.tar tar: test1.tar: A file or directory in the path name does not exist. (3 Replies)
Discussion started by: darkrainbow
3 Replies

9. Shell Programming and Scripting

Xargs command outupt to file

Hello, I'm on a mac trying to have the follow cmd list the files after touch, but very unsuccessful. Please can you help. sort $BOTHFILE | uniq -u | xargs -I {} -t touch {} >> $LOGFILE ; BOTHFile contents in form of /directory/file.txt thanx (3 Replies)
Discussion started by: byblos
3 Replies

10. UNIX for Dummies Questions & Answers

use of xargs command

Hi Everybody, Can you explain the difference between the following commands: 1. find . -print|xargs grep -i dba_2pc_pending 2. find . -print|grep -i dba_2pc_pending (5 Replies)
Discussion started by: kishorebabu
5 Replies
Login or Register to Ask a Question