Date: Tue, 13 Apr 2004 11:33:29 +0100 From: Peter Risdon <peter@circlesquared.com> To: FreeBSD Question List <freebsd-questions@freebsd.org> Subject: Problems with filename with spaces (was Pipes and commands thatrequire two arguments) Message-ID: <407BC1F9.4050305@circlesquared.com> In-Reply-To: <20040408165511.GD8182@dan.emsphone.com> References: <40757879.1010307@circlesquared.com> <20040408165511.GD8182@dan.emsphone.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Thanks very much for the previous help - I missed the example in man xargs. The files I am trying to manipulate include spaces in the file names, and I cannot seem to escape them effectively. If I try something like: #find /usr/home -name *.rtf.exe -print0 | perl -p -e 's/\ /\\\ /g;' | xargs -0 -J % mv % /usr/newplace/ Then although all spaces are preceded by backslashes I get errors every time a space is encountered. So for a file at /usr/home/user/this is a file.rtf.exe I get file does not exist errors from mv at: /usr/home/user/this\ and at: is\ and at: a\ and at: file.rtf.exe (yes, a windows virus on a network share has been busy). I have also tried #find /usr/home -name *.rtf.exe -print0 | perl -p -e 's/\ /\\\ /g;' > listofdodgyfiles and the list is fine. If I paste a line into mv on the command line, it works. If I use a simple script to read the file, same errors as mentioned above. I'm sure I'm missing something obvious... Any nudges in the right direction would be gratefully received. PWR.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?407BC1F9.4050305>