[arch-general] script to reformat 'pacman -Ss' output into 2 readable columns (prevents blindness)
Simon Stoakley
s_stoakley at hotmail.co.uk
Fri Aug 6 14:40:36 EDT 2010
On 06/08/10 06:33, Dave Reisner wrote:
>
> Hi.
>
> Let's see what we can do about cutting back a little on the verbosity,
> and upping the utility...
>
> -------------------------
>
> #!/bin/bash
>
> pkg=()
> desc=()
> count=-1
> WIDTH=${WIDTH:-50}
>
> while read line; do
> if [[ $line =~ ^(testing|core|extra|community|community-testing)/* ]]; then
> (( count++ ))
> pkg[count]="$line"
> continue
> fi
>
> desc[count]+="$line"
> done
>
> i=0
> while (( i<= count )); do
> IFS=$'\n' read -r -d'\0' -a blockdesc< <(fmt -w$WIDTH<<< "${desc[i]}")
>
> paste -d' '<(printf "%-49s" "${pkg[i]}")<(echo "${blockdesc[0]}")
>
> for line in "${blockdesc[@]:1}"; do
> printf "%-50s%s\n" "" "$line"
> done
>
> (( ++i ))
> [[ $1 == -d ]]&& echo
> done
>
> -------------------------
>
> It takes STDIN, and accepts a -d option to add a space after each
> package. Descriptions have a default width of 50 characters (meaning a
> total width of 100 characters). You can alter this by specifying WIDTH
> as an environment var, e.g.
>
> $ pacman -Ss | WIDTH=30 ./foofilter -d
>
> Personally I think pacman-color is a better solution that mangling the
> output like this, but to each their own.
>
> d
>
>
---
Thanks for this one, I've messed around with it a little and it's a
handy little function for searching.
More information about the arch-general
mailing list