On Fri, Feb 18, 2005 at 04:12:16AM -0800, Freddy Freeloader wrote:
Kevin Mark wrote:
On Thu, Feb 17, 2005 at 08:49:41PM -0800, Freddy Freeloader wrote:
Glenn English wrote:
On Thu, 2005-02-17 at 16:08 -0800, Freddy Freeloader wrote:
What I've been attempting to do with grep
and regular expressions is list only non-hidden directories and/or
files. I am unable to come up with an expression that will elimate
hidden files and return non-hidden files at the same time.
ls -al | grep -v ' \.\<[a-zA-Z0-9].*\>' # returns everything
ls | grep -e '\<[^.][[:alnum:]]' # returns everything
ls | grep -e '\<[.][[:alnum:]]' # returns an empty set
ls -al | grep -v ' \.' seems to work here???
I thought about this a little more and from it's behavior of filtering
out files with extensions I'd say it's not filtering based on the . that
designates whether a file or directory is hidden.
I have a few files without extensions and it returns those, but any file
with an extension is filtered out. So, this isn't really resovling the
problem I'm having.
Hi Freddy,
find -maxdepth 1 |grep -v "^\./\."
(remove files that start with ./.)
this find files and directories in the current directory that are not
hidden. Hidden files and directories start with .
Cheers,
Kev
Hi Kevin,
This returns the correct files ok. However, it's not too much different
than ls -a | grep -v '^\.' which I can make work too. What I'm really
trying to do is figure out how to parse the beginning of the file name
column in the long format, and I just can't come up with a way to do
that on my machines. I've been given expressions that do it on other
machines, but I have yet to find one that will work on my machines.
I just can't see why grep can't recognize the beginning of the word in
the file name column in the long format. Why will it recognize the . in
short format at the beginning of a line, but not in the long format at
the beginning of a word? I can parse the beginning of words in any
other situation I've come across but not in in ls -al.
Hi Freddy,
ls -a just returns the file names and thus the first column will contain
the start of the filename. ls -al show the permission in the first
column and thus the "^..." will be matched against it and not the
filename.
-Kev