[NTLUG:Discuss] Strings in BASH, an easier way?
Chris Cox
cjcox at acm.org
Sat Dec 27 21:23:53 CST 2008
Fred James wrote:
> Chris Cox wrote:
>> Leroy Tennison wrote:
>>
>>> I'm wanting to split a string in BASH. I know about gawk and maybe sed
>>> but I'm looking for a less involved solution. The simplest I've found
>>> so far is the cut program but I'm wondering if there is something even
>>> simpler.
>>>
>>> To add some context, what surfaced this is I wanted to do an apropos on
>>> all programs in my path. What I have at this point is:
>>>
>>> for i in `echo $PATH | cut -d: -f1-30 --output-delimiter=" "`; do
>>> for j in `ls -1 $i`; do apropos $j; read; done;
>>> done
>>>
>>>
>> My solution:
>> echo "$PATH" | tr ':' ' ' | xargs ls -1 | xargs -n1 apropos -e
>>
> Chris Cox
> "apropos: -e: unknown option"
Well... if you have an apropos with the "-r" option you can
simulate an "exact" pattern match (what -e does on distros with
that option). Alternatively you can look into doing
a man -f instead (but if you don't have apropos -e, you probably
don't have man -f either).
The problem is that apropos is a keyword search... and specifically
I think you want the man page description text associated with the
exact command. Naturally, none of this is perfect... but if
you can use apropos -e or man -f, it gets pretty close.
More information about the Discuss
mailing list