This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: cp: omitting directory, for copying only files, sed


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi David,

On 7 Nov 2010, at 14:22, David wrote:

Den 06-11-2010 15:12, Edgar Matzinger skrev:
I ran this script (on MacOSX):

#!/bin/sh
W="\/Users\/edgarm\/tmp\/$1\/."
echo $W
sed -n 's/^File[ ]*\([^ ][^ ]*\).*/\"\1\" '"$W"'/p' < $2 | xargs echo X:

I would replace your script with this one:


#!/bin/sh
W="\/Users\/edgarm\/tmp\/$1\/."
echo $W
sed -n -e '/^File/H' -e '${x; s:\n: :g; s:File ::g; s:\(.*\):\1 "'$W'":; p; }' < $2 | xargs cp


What does it do?

- -e '/^File/H' When pattern buffer starts with 'File', append it to hold buffer
- -e '${ When at the last line, start a function
x; Exchange hold and pattern buffer
s:\n: :g; Replace newline with a space
s:File ::g; Delete 'File '
s:\(.*\):\1 "'$W'":;
Append $W to pattern buffer
p; }' Print pattern buffer and close function


Note: The pattern buffer is also the input buffer.

Thanks for a nice sed training or exercise...

Kind regards, Edgar.
- --
                                                        ''~``
                                                       ( o o )
+-------------------------------------------------.oooO--(_)--Oooo.---+

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (Darwin)

iQEcBAEBAgAGBQJM1tixAAoJEENMxv7g8VYweG0H/2fT04z1+flFjd8YI3phOeA2
kGSZ9pSQBbRWRsa/lvLnKDoipMeTatYrG2vnzRz1/NGWg7XB0WpGGTn111NYIzQd
ljl40zSCKC825zQWH7VdGFC2tk24Rktzbz/KTWDyVHIdvaBp9C6O4JsAbBFOgiZE
8/3QtkhD/g1dPMM5P0rUGXUfRDRB5Z9OnV1w5g2HU5I4+3SWdD/5VjEOTZ2JNcXT
nkC0D/ADzwCPRHSFPwFyRYWEWRxhZdeUQUDd+NCsmvLapVkooz0WLZbS6dhq9KUs
I80vO2dVsZCzZVL99AH6BURG/yYZCCBA/7FU91MuCzPBUVpY5aFXdSaioZEduH4=
=9RNs
-----END PGP SIGNATURE-----

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]