Trimming Whitespace From Beginning and end of Text Lines

Kyrre Nygard kyrreny at broadpark.no
Fri May 12 09:51:32 PDT 2006


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.

--

#!/usr/local/bin/bash
#
#   Remove CRLF, trailing whitespace and double lining.
#   $MERHABA: ascii_clean.sh,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"

         fi

done

--

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

Take care,
Kyrre



More information about the freebsd-questions mailing list