www.delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2010/11/07/11:50:32

X-Recipient: archive-cygwin AT delorie DOT com
X-SWARE-Spam-Status: No, hits=0.8 required=5.0 tests=BAYES_50,RCVD_IN_DNSWL_NONE
X-Spam-Check-By: sourceware.org
Message-Id: <0A09BBFB-0267-4D0B-B736-4F8AB8B84C32@edgar-matzinger.nl>
From: Edgar Matzinger <edgar AT edgar-matzinger DOT nl>
To: cygwin AT cygwin DOT com
In-Reply-To: <ib695r$uer$1@dough.gmane.org>
Mime-Version: 1.0 (Apple Message framework v936)
Subject: Re: cp: omitting directory, for copying only files, sed
Date: Sun, 7 Nov 2010 17:49:52 +0100
References: <ib3gtb$v4$1 AT dough DOT gmane DOT org> <6488B010-E946-4EA3-BE77-586ACD794EEB AT edgar-matzinger DOT nl> <ib695r$uer$1 AT dough DOT gmane DOT org>
X-Pgp-Agent: GPGMail 1.2.0 (v56)
X-IsSubscribed: yes
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Unsubscribe: <mailto:cygwin-unsubscribe-archive-cygwin=delorie DOT com AT cygwin DOT com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com

-----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=3D"\/Users\/edgarm\/tmp\/$1\/."
>> echo $W
>> sed -n 's/^File[ ]*\([^ ][^ ]*\).*/\"\1\" '"$W"'/p' < $2 | xargs=20=20
>> echo X:

I would replace your script with this one:

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

What does it do?

- -e '/^File/H'	When pattern buffer starts with 'File', append it to=20=20
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=3D
=3D9RNs
-----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

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019