9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
* [9fans] fun with rc
@ 2015-03-12 16:46 erik quanstrom
  2015-03-12 17:07 ` minux
  2015-03-12 18:09 ` Christian Neukirchen
  0 siblings, 2 replies; 5+ messages in thread
From: erik quanstrom @ 2015-03-12 16:46 UTC (permalink / raw)
  To: 9fans

so an interesting problem i run into from time to time is separately computing
the files added to and deleted from a directory in a shell script.  uniq doesn't
work for this.  certainly one can loop over two lists of files and do this easily,
but that seems dull and tedious.

but as it turns out, one can compute the deleted and added files relatively
efficiently with diff in two steps.  obviously uniq -d gives us the union, so

	fn ∩ {echo $$1 $$2 | sed 's/ /\n/g' | sort | uniq -d}

and uniq -u gives us not union

	fn not∩ {echo $$1 $$2 | sed 's/ /\n/g' | sort | uniq -u}

but then we can compuete the "difference" (relative complement) we want
with

	fn listminus {c=`{∩ $1 $2} not∩ c $1}

so then

	echo 'added=('  `{listminus old new} ')'
	echo 'deleted=('  `{listminus new old} ')'

he!  such fun with rc.

this is available now in 9atom.

- erik



^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2015-03-12 18:31 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-03-12 16:46 [9fans] fun with rc erik quanstrom
2015-03-12 17:07 ` minux
2015-03-12 17:17   ` erik quanstrom
2015-03-12 18:09 ` Christian Neukirchen
2015-03-12 18:31   ` erik quanstrom

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).