| |||||||||||
Grep filename in shell script Posted by hycheah (hycheah), 23 July 2007 I have a folder that consists of the files below:comment.txt checkin.sh filename1.list filename2.list list1.rpt listb.rpt hello3.pl I need to create a new file, files.txt which is lists all the filenames except comment.txt and checkin.sh. I tried (ls | grep [^comment.txt|checkin.sh]) > files.txt but it doesn't seem to work. Please help. Thanks! Posted by admin (Graham Ellis), 23 July 2007 The [ to ] element of a regular expression calls up any one character within the list, which is not what you want; you want simply | to mean "or" to whle strings, and you should use egrep as not every basic grep does that in practise. The -v option is used to give everything except matching lines.That gives you a rewritten statement: ls | egrep -v 'comment.txt|checkin.sh' > files.txt Not perfect - the "." actually matches any character at all, and you are looking within the line reported by ls in each case and not at the whole line, but it should do for you. Posted by george_Ball (george), 27 July 2007 You can just escape the '.' in the regular expression and then it's more or less complete...ls | egrep -v 'comment\.txt|checkin\.sh' > files.txt This page is a thread posted to the opentalk forum
at www.opentalk.org.uk and
archived here for reference. To jump to the archive index please
follow this link.
|
| ||||||||||
PH: 01144 1225 708225 • FAX: 01144 1225 793803 • EMAIL: info@wellho.net • WEB: http://www.wellho.net • SKYPE: wellho |