[clug] Bash questions...

Francis Whittle fj.whittle at gmail.com
Sat Apr 30 21:00:45 MDT 2011


perl one liner?

perl -e 'print "-" x20 . "\n"';

On Sun, 2011-05-01 at 11:39 +1000, steve jenkin wrote:
> Yesterday I wanted a short bash construct to write a line of dashes to
> separate blocks of output, ie:
> 
> --------------------------------------------------
> blah blah blah
> --------------------------------------------------
> yaddah yaddah yaddah
> --------------------------------------------------
> and so on
> --------------------------------------------------
> 
> 
> But without doing my usual, v. simple:
>  echo "--------------------------------------------------" :-)
> 
> 
> The bash on my Mac is not-quite-recent, so I can't use 'seq', but the
> older form:
>  for i in {1..10};do ....;done
> 
>  steve$ bash --version
> GNU bash, version 3.2.48(1)-release (x86_64-apple-darwin10.0)
> 
> 
> Attempt 1:
>  steve$ for i in {1..20};do echo -n "-";done;echo
> 
> Attempt 2:
>  steve$ yes -|head -20|tr -d '\n';echo
> 
> 2A:
> steve$ yes ''|head -20|tr '\n' '-';echo
> 
> 2B:
>  steve$ printf "%s\n" $(yes ''|head -20|tr '\n' '-')
> 
> 
> I thought of using 'dd if=/dev/zero bs=1 count=20', but that's a bit long...
> 
> => Someone out there is CLUG land is going to have a great little recipe
> for this and related tasks...
> 
> Perhaps something with the shell variable pattern matching, or the
> string 'expr'??
> 
> A recursive function, if it doesn't blow up the stack, could be very short.
> 
> Preloading a variable with a very long string, then somehow pulling out
> a substring could also work. [There's "array variable BASH_REMATCH"]
> 
> python/perl/sed one-liners are also welcome :-)
> 
> 
> And "for extra credit", any new interesting thing you've been doing :=]
> 
> 
> -- 
> Steve Jenkin, Info Tech, Systems and Design Specialist.
> 0412 786 915 (+61 412 786 915)
> PO Box 48, Kippax ACT 2615, AUSTRALIA
> 
> sjenkin at canb.auug.org.au http://members.tip.net.au/~sjenkin




More information about the linux mailing list