That won't work (I just verified for myself that it doesn't by trying it).  Those are line anchors, not word anchors.  It will only match lines that have no more than 4 characters on them (including newlines, carriage returns, etc).<br>
<br>Something like '\w\{1,4\}' should work, though in practice it doesn't seem to honor the maximum match condition (4 in this case).  But you can pipe it to another grep to filter it out.  grep '.\{1,4\}' myfile.txt | grep -v '.\{5,\}' seems to work.<br>
<br><div class="gmail_quote">On Wed, Dec 10, 2008 at 10:12 AM, jim <span dir="ltr"><<a href="mailto:jim@well.com">jim@well.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
from charles-henri (using an email address not<br>
registered on the sf-lug mailing list):<br>
<div class="Ih2E3d"><br>
jim wrote:<br>
        > i've given up on the online tutorials.<br>
        ><br>
        > i have a text file with over 100000 words (and lines,<br>
        > one word per line). i wanna grep out all words that<br>
        > are from one to four characters, e.g. 'a' or 'and'<br>
        > or "fact" but not "apple" or "zounds".<br>
        ><br>
        > $  grep '[.]{4}' words.txt<br>
        > got me a newline.<br>
        ><br>
<br>
<br>
</div>[.] will match a literal '.'<br>
'{' needs to be escaped. \{$4\} will match exactly 4<br>
Also, you need to anchor your regex (with ^ and $)<br>
<br>
So:<br>
grep '^.\{1,4\}$'<br>
<div><div></div><div class="Wj3C7c"><br>
<br>
--<br>
Charles-Henri<br>
<br>
<br>
<br>
<br>
_______________________________________________<br>
sf-lug mailing list<br>
<a href="mailto:sf-lug@linuxmafia.com">sf-lug@linuxmafia.com</a><br>
<a href="http://linuxmafia.com/mailman/listinfo/sf-lug" target="_blank">http://linuxmafia.com/mailman/listinfo/sf-lug</a><br>
</div></div></blockquote></div><br>