Regular expression in grep -E | awk print


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Regular expression in grep -E | awk print
# 1  
Old 10-01-2009
Regular expression in grep -E | awk print

Hi All,

I have file.txt with contents like this:

random text
To: recipient@email.co.uk
<HTML>S7randomtext more random text
random text
To: recip@smtpemail.com
<HTML>E5randomtext more random text
random text
I need the output to look like this:

1,,,1,S7
1,,,1,E5

My code so far is:
Code:
 
grep -E "[A-Z][0-9]" file.txt | awk '{print ",1,,,1,"[A-Z][0-9]}' > out.txt

but I get this error: awk: line 1: syntax error at or near [

How can I get the Regular Expression [A-Z][0-9] into the print of awk??? Please help asap

Last edited by terry2009; 10-02-2009 at 05:41 AM..
# 2  
Old 10-01-2009
Code:
echo '<HTML>S7randomtext' | sed 's#.*>\([A-Z][0-9]\).*#1,,,1,\1#'

# 3  
Old 10-01-2009
Thanks, but would this work (this is a snippet of a much much larger script):

Code:
grep -E "[A-Z][0-9]" file.txt | sed 's#.*>\([A-Z][0-9]\).*#1,,,1,\1#' > out.txt

# 4  
Old 10-01-2009
Quote:
Originally Posted by terry2009
Thanks, but would this work (this is a snippet of a much much larger script):

Code:
grep -E "[A-Z][0-9]" file.txt | sed 's#.*>\([A-Z][0-9]\).*#1,,,1,\1#' > out.txt

Hello friends, could you please tell me what does " > " stands for in SED part of the script? I understand all the regex except it,

regards
# 5  
Old 10-01-2009
Quote:
Originally Posted by terry2009
Thanks, but would this work (this is a snippet of a much much larger script):

Code:
grep -E "[A-Z][0-9]" file.txt | sed 's#.*>\([A-Z][0-9]\).*#1,,,1,\1#' > out.txt

you don't need 'grep' if you're using 'sed':
Code:
sed '/[A-Z][0-9]/ s#.*>\([A-Z][0-9]\).*#1,,,1,\1#' file.txt > out.txt

# 6  
Old 10-01-2009
Quote:
Originally Posted by EAGL€
Hello friends, could you please tell me what does " > " stands for in SED part of the script? I understand all the regex except it,

regards
It's a literal > (meaning match a greater-than sign, or in this context an angled bracket)
# 7  
Old 10-01-2009
Quote:
Originally Posted by EAGL€
Hello friends, could you please tell me what does " > " stands for in SED part of the script? I understand all the regex except it,

regards
It's not part of an RE. Look at the original pattern:
Code:
echo '<HTML>S7randomtext' | sed 's#.*>\([A-Z][0-9]\).*#1,,,1,\1#'

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 command to search a regular expression in a line an only print the string after the match

Hello, one step in a shell script i am writing, involves Grep command to search a regular expression in a line an only print the string after the match an example line is below /logs/GRAS/LGT/applogs/lgt-2016-08-24/2016-08-24.8.log.zip:2016-08-24 19:12:48,602 ERROR... (9 Replies)
Discussion started by: Ramneekgupta91
9 Replies

3. 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

4. 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

5. Shell Programming and Scripting

How to print the extended regular expression ?

Hello, How to print the field separator in awk? please see the following code: cat a.txt a 1s 2s 3s 4s b 2s 4s $ awk 'BEGIN{FS==" "} {print $2 $3 }' te 1s2s 2s4s I want to get the following output : 1s 2s 2s 4s How to realize this ? $ cat te a 1s,,2s 3s ... (11 Replies)
Discussion started by: 915086731
11 Replies

6. 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

7. Shell Programming and Scripting

grep and regular expression

Hi, I am executing a svnlook command to check to see if the following line exists. I need a regular expression to represent the line. A /test/test1/qa/test2/index.html A /test/test1/qa/test3/test.jpg A /test/test1/qa/test3/test1.jpg A /test/test1/qa/test4/test.swf I just need to extract... (9 Replies)
Discussion started by: kminkeller
9 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