On Wed, Dec 19, 2007 at 12:46:51PM +1100, Scott Ragen wrote: > [EMAIL PROTECTED] wrote on 19/12/2007 11:34:30 AM: > > Norman Gaywood wrote: > > > perl -00 -ne 'print tr/,//' input.txt > > > > I nominate the perl soln as the winner so far: runs like > > a bat of out hell and is the most easy to understand. > > And the shortest in source code size. > > I have to disagree. Whilst it may be fast, its not 100% correct. > Most of the time it would probably work, but if there are any blank lines, > it outputs the current count, and starts again. > > Consider the following file contents: > --file contents-- > this,is,the,first,line > this,is,the,second > > the,above,was,a,blank,line > > and,another,blank,line > --end file contents-- > > On Jeff's original command: > sed 's#[^,]*##g' input.txt | tr -d '\n' | wc -m > 15 > > The perl command: > perl -00 -ne 'print tr/,//' input.txt > 753
You are correct. I misread the perlrun man page. -00 means paragraph mode. I wanted slurp mode, which is the slightly uglier -0777. So the perl solution should be: perl -0777 -ne 'print tr/,//' input.txt There is also the slightly shorter, tending to perl ugly instead of perl neat: perl -0777 -pe '$_=tr/,//' input.txt -- Norman Gaywood, Systems Administrator University of New England, Armidale, NSW 2351, Australia [EMAIL PROTECTED] Phone: +61 (0)2 6773 3337 http://mcs.une.edu.au/~norm Fax: +61 (0)2 6773 3312 Please avoid sending me Word or PowerPoint attachments. See http://www.gnu.org/philosophy/no-word-attachments.html -- SLUG - Sydney Linux User's Group Mailing List - http://slug.org.au/ Subscription info and FAQs: http://slug.org.au/faq/mailinglists.html