regular expressions


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers regular expressions
# 1  
Old 04-09-2008
regular expressions

how to find for a file whose name has all characters in uppercase after 'project'?

I tried this:

find . -name 'project[A-Z]*[^a-z]*.pdf'
./projectABC.pdf
./projectABC123.pdf


I want only ./projectABC.pdf

What is the regular expression that correponds to "all characters are capital"?
thanks
# 2  
Old 04-09-2008
Quote:
Originally Posted by melanie_pfefer
What is the regular expression that correponds to "all characters are capital"?
find doesn't actually support full regular expressions, and therein lies your real problem. But pipe it to something which does, and it should be easy.

Code:
find . -name 'project[A-Z]*.pdf' | grep '/project[A-Z]*\.pdf$'

The wildcard in the find command line matches [A-Z] followed by anything. You can't easily say "anything except" in wildcards. However, you can pipe the matches to grep, which does support full regular expressions; the regular expression means something slightly different: it says [A-Z] zero or more times. So the asterisk has a different meaning there, and allows you to express the constraint that you have.
# 3  
Old 04-09-2008
Code:
$ find ./ ! -name 'project*[0-9]*.pdf' -name 'project[A-Z]*.pdf'
./projectABC.pdf

# 4  
Old 04-09-2008
if you have GNU find, you can use -regex option.
# 5  
Old 04-10-2008
hello,

thanks for the answers but:

find ./ ! -name 'project*[0-9]*.pdf' -name 'project[A-Z]*.pdf'
./projectAbc.pdf
./projectABC.pdf
./projectABC#.pdf



find . -name 'project[A-Z]*.pdf' | grep '/project[A-Z]*\.pdf$'
./projectAbc.pdf
./projectABC.pdf


I want only to display projetABC.pdf

thanks in advance
# 6  
Old 04-10-2008
Are you sure about the second one? You're not passing in "grep -i" or have something in your environment to that effect?
# 7  
Old 04-10-2008
For some reason, this is working on Solaris but not on Linux:

Solaris:
bash-3.00# find . -name 'project[A-Z]*.pdf' | grep '/project[A-Z]*\.pdf$'
./projectABC.pdf
./projectABA.pdf

Linux:
find . -name 'project[A-Z]*.pdf' | grep '/project[A-Z]*\.pdf$'
./projectAbc.pdf
./projectABC.pdf
./projectABA.pdf
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Regular expressions

I need to pick a part of string lets stay started with specific character and end with specific character to replace using sed command the line is like this:my audio book 71-skhdfon1dufgjhgf8.wav' I want to move the characters beginning with - end before. I have different files with random... (2 Replies)
Discussion started by: XP_2600
2 Replies

2. Shell Programming and Scripting

Regular Expressions

I am new to shell scripts.Can u please help me on this req. test_user = "Arun" if echo "test_user is a word" else echo "test_user is not a word" (1 Reply)
Discussion started by: chandrababu
1 Replies

3. Shell Programming and Scripting

Help with regular expressions

I have a file that I'm trying to find all the cases of phone number extensions and deleting them. So input file looks like: abc x93825 def 13234 x52673 hello output looks like: abc def 13234 hello Basically delete lines that have 5 numbers following "x". I tried: x\(4) but it... (7 Replies)
Discussion started by: pxalpine
7 Replies

4. Shell Programming and Scripting

Regular Expressions

#!/usr/bin/perl $word = "one last challenge"; if ( $word =~ /^(\w+).*\s(\w+)$/ ) { print "$1"; print "\n"; print "$2"; } The output shows that "$1" is with result one and "$2" is with result challenge. I am confused about how this pattern match expression works step by step. I... (8 Replies)
Discussion started by: DavidHe
8 Replies

5. UNIX for Dummies Questions & Answers

Regular expressions

In regular expressions with grep(or egrep), ^ works if we want something in starting of line..but what if we write ^^^ or ^ for pattern matching??..Hope u all r familiar with regular expressions for pattern matching.. (1 Reply)
Discussion started by: aadi_uni
1 Replies

6. UNIX for Advanced & Expert Users

Regular Expressions

Hi, below is a piece of code written by my predecessor at work. I'm kind of a newbie and am trying to figure out all the regular expressions in this piece of code. It is really a tough time for me to figure out all the regular expressions. Please shed some light on the regular expressions... (3 Replies)
Discussion started by: ramky79
3 Replies

7. Shell Programming and Scripting

regular expressions

Hello, Let say I have a string with content "Free 100%". How can extract only "100" using ksh? I would this machanism to work if instead of "100" there is any kind of combination of numbers(ex. "32", "1238", "1"). I want to get only the digits. I have written something like this: ... (4 Replies)
Discussion started by: whatever
4 Replies

8. UNIX for Dummies Questions & Answers

regular expressions

Hi Gurus, I need help with regular expressions. I want to create a regular expression which will take only alpha-numeric characters for 7 characters long and will throw out an error if longer than that. i tried various combinations but couldn't get it, please help me how to get it guys. ... (2 Replies)
Discussion started by: ragha81
2 Replies

9. Shell Programming and Scripting

Help with regular expressions

I have following content in the file CancelPolicyMultiLingual3=U|PC3|EN RestaurantInfoCode1=U|restID1|1 ..... I am trying to use following matching extression \|(+) to get this PC3|EN restID1|1 Obviously it does not work. Any ideas? (13 Replies)
Discussion started by: arushunter
13 Replies

10. Programming

regular expressions in c++

How do I use the regular expressions in c++? (2 Replies)
Discussion started by: szzz
2 Replies
Login or Register to Ask a Question