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>
index | next in thread | previous in thread | raw e-mail
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.home | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?407BC1F9.4050305>
