At 16:50 12.05.2006, Martin McCormick 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 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'

        If I cat the test file through this script, it also
removes one or two spaces, but not all the leading and trailing
whitespace I put there.  I can write a program in C to do this,
but is there a sed script or other native application in FreeBSD that
can do this?

        Thank you.

Martin McCormick WB5AGZ  Stillwater, OK
Systems Engineer
OSU Information Technology Department Network Operations Group

What's up man?

Here's a script I use to remove trailing whitespace.

It also reduces two or more empty lines like this:



To just one:



And it converts ASCII files to UNIX format (that is without ^M).

Then for pretty sake, it adds an empty line to the end of each file.


#   Remove CRLF, trailing whitespace and double lining.
#   $MERHABA:,v 1.0 2007/11/11 15:09:05 kyrre Exp $

for file in `find -s . -type f`; do

        if file -b $file | grep -q 'text'; then

                echo >> $file

tr -d '\r' < $file | cat -s | sed -E -e 's/[[:space:]]+$//' > $file.tmp

                mv -f $file.tmp $file

                echo "$file: Done"




I'd be interested in knowing if you manage to improve this script.

Take care,

_______________________________________________ mailing list
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to