Help | unix | grep | regular expression


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Help | unix | grep | regular expression
# 1  
Old 10-12-2009
Help | unix | grep | regular expression

I have the following code:
Code:
ls -al /bin | tr -s ' ' | grep 'x[ ]'

ls -al: Lists all the files in a given director such as /bin
tr -s ' ': removes additional spaces between characters so that there is only one space
grep 'x[ ]': match all "x" characters that are followed by a whitespace.

I was able to repalce [ ] with [[:space:]] but it wouldn't seem to allow for [/s] or [/t]. I'm just seeing what other ways I can represent a whitespace. I also tried to implenment free-space mode but to no avail. When I use /s or /t, I just get no output.

On a side note does [ ] equal the exact samething as [[:space:]]?
# 2  
Old 10-12-2009
Hi, MykC,

[:space:]=space, tab, newline, formfeed, verticaltab, carriage-return
[:blank:] =space, tab

so [[:blank:]]=[\t ]

I noticed you used a / instead of a \ .

BTW
Code:
grep 'x '

will get the same result. I don't think anything other than " " is being used so that should do.
If you just want the world executable entries a safer bet would be:
Code:
grep '^.\{9\}x '

(a line starting with 9 characters followed by an x)
If you also want to know if the items that symbolic links point to are in fact world executable you could use the -L (dereference) option if your ls supports it:
Code:
ls -Lal /bin | tr -s ' ' | grep '^.\{9\}x '


Last edited by Scrutinizer; 10-12-2009 at 08:57 PM..
# 3  
Old 10-12-2009
Hey, thanks for the help.

I did implement the repetion for safety which prevents sequences else where matching 'x ' from being flagged.

Ok, so when I use ls -aLl, it will replace all the files that were represented by a symbolic link (link a windows shortcut) with the information from the actual file. Which is probably better since symbolic links all have the same permissions were as the actual file may not.

So I now have:
Code:
 
ls -aLl /bin | grep '[[:graph:]]\{9\}x '

I don't know if I should use [:graph:] but most tutorials reccommend the "." whenever I can and I though [:graph:] would do the trick.
# 4  
Old 10-12-2009
You can use [[:graph:]] to mean any non-space-or-tab character or you can use :
Code:
[^ \t]

(neither space nor tab )

If you use the "^" as the first character in your grep string, it means "at the beginning of the line", then I think "." would suffice since the -l output is always going to produce 10 characters in the first column. So:
Code:
grep '^[^ \t]\{9\}x '

or
Code:
grep '^.\{9\}x '

 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Grep regular expression

I want to track only below: I am using below, but it doesn't work: (6 Replies)
Discussion started by: proactiveaditya
6 Replies

2. Shell Programming and Scripting

Grep + Regular expression or

Hi , I have few lines like A20120101.ANU.ZIP A20120401.ABC.ZIP A20120105.KJK.ZIP A20120809.JUG.ZIP A20120101.MAT.ZIP B20120301.ANU.XIP I want to filter by 1. Files starting with A and Ending With Z ( ^A.*.ZIP$) 2. And either ANU, or KJK or MAT in the file name. Hope my... (6 Replies)
Discussion started by: Anupam_Halder
6 Replies

3. Programming

Perl: How to read from a file, do regular expression and then replace the found regular expression

Hi all, How am I read a file, find the match regular expression and overwrite to the same files. open DESTINATION_FILE, "<tmptravl.dat" or die "tmptravl.dat"; open NEW_DESTINATION_FILE, ">new_tmptravl.dat" or die "new_tmptravl.dat"; while (<DESTINATION_FILE>) { # print... (1 Reply)
Discussion started by: jessy83
1 Replies

4. Shell Programming and Scripting

Help with grep / regular expression

Hi, Input file: -13- -1er- -1xyz1- -1xz12- -2ab1- -2ab2-- -143- Code: grep '^*\-' input.txt Wrong output: -13- -1xyz1- -2ab1- -2ab2-- (4 Replies)
Discussion started by: dragon.1431
4 Replies

5. UNIX for Dummies Questions & Answers

Help | Unix | grep | regular expression | backreference | Syntax/Logic

Hello, I'm working on learning regular expressions and what I can do with them. I'm using unix to and its programs to experiment and learn what my limitations are with them. I'm working on duplicating the regular expression: ^(.*)(\r?\n\1)+$ This is supposed to delete duplicate lines... (2 Replies)
Discussion started by: MykC
2 Replies

6. UNIX for Dummies Questions & Answers

Syntax Help | unix | grep | regular expression | repetition

Hello, This is my first post so, Hello World! Anyways, I'm learning how to use unix and its quickly become apparent that a strong foundation in regular expressions will make things easier. I'm not sure if my syntax is messing things up or my logic is messing things up. ps -e | grep... (4 Replies)
Discussion started by: MykC
4 Replies

7. Shell Programming and Scripting

grep regular expression

please can someone tell me what the following regrex means grep "^aa*$" <file> I thought this would match any word beginning with aa and ending with $, but it doesnt. Thanks in advance Calypso (7 Replies)
Discussion started by: Calypso
7 Replies

8. Shell Programming and Scripting

grep with regular expression

Hi, guys. I have one question, hope somebody can give me a hand I have a file called passwd, the contents of it arebelow: *********************** ... goldsimj:x:5008:200: goldsij2:x:5009:200: whitej:x:5010:201: brownj:x:5011:202: goldsij3:x:5012:204: greyp:x:5013:203: ...... (6 Replies)
Discussion started by: daikeyang
6 Replies

9. UNIX for Advanced & Expert Users

regarding grep regular expression

When i do ls -ld RT_BP* i am getting the following list. drwxrwx--- 2 user group 256 Oct 17 10:09 RT_BP809 drwxrwx--- 2user group 256 Oct 17 10:09 RT_BP809.O drwxrwx--- 2 user group 256 Oct 17 10:09 RT_BP810 drwxrwx--- 2user group 256 Oct... (2 Replies)
Discussion started by: ukatru
2 Replies

10. Shell Programming and Scripting

grep : regular expression

guys, my requirment goes like this: I have a file, and wish to filter out records where 1. The first letter is o or O and 2. The next 4 following letter should not be ther I do not wish to use pipe and wish to do it in one shot. The best expression I came up with is: grep ^*... (10 Replies)
Discussion started by: RishiPahuja
10 Replies
Login or Register to Ask a Question