Hi,Eric Many thanks for your quite detailed explanation. It's not bug but my limit knowledge. It works and I have learned the details from you.
Thanks! Best Regards Xiaowu Dai STmicroelectronics (+)86 –(0)755-8601-2139 Tina: 097-2139 -----Original Message----- From: Eric Blake [mailto:ebl...@redhat.com] Sent: Friday, November 01, 2013 10:26 PM To: Xiao Wu DAI; bug-findutils@gnu.org Subject: Re: xargs bugs On 11/01/2013 01:54 AM, Xiao Wu DAI wrote: > > hi, > > it seems `echo ..` doesn't work in GNU xargs version 4.2.27 like below > | xargs -t -i mv {}`echo {} |sed 's/mode/dai/g'` 'echo' is your friend. Try: echo xargs -t -i mv {} `echo {} | sed 's/mode/dai/g'` to see that you were executing: xargs -t -i mv {} {} which is NOT what you wanted. You need to use proper quoting; and since you want to do programmatic shell actions on {}, you need your xargs to spawn an instance of sh. Try: xargs -t -i sh -c 'mv "$1" "$(echo "$1" | sed 's/mode/dai/g')"' sh {} -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org