On 2006-05-12 09:50, Martin McCormick <[EMAIL PROTECTED]> wrote:
>       This looks like something sed should be able to do, but I
> haven't had any luck at all.  I wanted to remove any whitespace
> that has accidentally gotten added to the beginning or end of
> some lines of text.  I made a test file that looks like:
> left justified.
>                                              lots of spaces.
> and the best I have done so far is to get rid of about 3 spaces.
> Attempt 1.
> #! /usr/bin/sed -f
> s/ \+//g
> s/^ //g
> s/ $//g

This fails to remove TAB characters from either the start or the
end of a line.

>       This looks like it should do the job, but the leading and
> trailing spaces are still mostly there.
>       I wrote another script.  Attempt 2.
> #! /bin/sh
> sed 's/^[[:space:]]//g' \
> |sed 's/[[:space:]]$//g'

This fails to remove multiple occurences of the [[:space:]] class.

There are at least the following ways:

        sed -i -e 's/^[[:space:]]*' -e 's/[[:space:]]*$//' file ...
        perl -pi -e 's/^\s*(\S.*\S)[ \t]*$/$1/' file ...

The first one seems more straightforward to me most of the time,
but there are times I find Perl's `-pi -e ...' idiom very convenient.

freebsd-questions@freebsd.org mailing list
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to