return the previous line


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting return the previous line
# 1  
Old 12-17-2007
return the previous line

Hello friends ,

I am doing the following command, but it is not wise to all files.
Code:
for temp in `find ./CSV/ -name  "*.txt"`
do
          sed -n -e 'N; /*Main End/p' $temp
done

Its give me the correct output for some files , but not for all files.
I mean some files contains the string *Main End , But it wont return me any value . But In some files it contains the exact *Main End pattern , it returns me the previous line as usual.

Pls help..

I am using Solaris 6.0
# 2  
Old 12-17-2007
I think you misunderstand /*Main End/ as a regex.
Code:
/Main End$/ = Main End at the end of a line
/.*Main End/ = one or more of any character before Main End occurs  could be
   in the middle or at the end

The sed syntax is fine, it is your search expression causing your probelm.
# 3  
Old 12-17-2007
Quote:
Originally Posted by jim mcnamara
I think you misunderstand /*Main End/ as a regex.
Code:
/Main End$/ = Main End at the end of a line
/.*Main End/ = one or more of any character before Main End occurs  could be
   in the middle or at the end

The sed syntax is fine, it is your search expression causing your probelm.
Thanks for the reply.
But I opened in vi editor . And when I looked with the vi option
set list. It seems to be both same .

Ok. can you Please suggest me a R.E here for search the below
starting with a * follwing Main End.

Thank you in advance..
# 4  
Old 12-18-2007
Strange output

Quote:
Originally Posted by user_prady
Thanks for the reply.
But I opened in vi editor . And when I looked with the vi option
set list. It seems to be both same .

Ok. can you Please suggest me a R.E here for search the below
starting with a * follwing Main End.

Thank you in advance..
I ve two files looks as follows
file1
Code:
*Comment Frame 641 at 666.667 us
000000,CB1F,0,0,0,0,1,0,1
*Main End

file 2
Code:
000000,0000,0,0,2,0,0,0,0
*Comment Frame 
5,7E3D,0,0,0,0,1,0,1
*Main End

But when I using the command for both file
Code:
sed -n -e 'N; /\*Main End/p' file1

it should return me the line before The pattern *Main End

But it wont

But in case of file2 its working ,

Please need help urgently..

Last edited by user_prady; 12-18-2007 at 01:18 AM..
# 5  
Old 12-18-2007
Try:
sed -n -e '/\*Main End/{g;p;q;};h' file1

This returns only the line before the Main End line. Do you really need that Main End line as well? If so try this one:
sed -n -e '/\*Main End/{H;g;p;q;};h' file1
# 6  
Old 12-18-2007
Quote:
Originally Posted by Perderabo
Try:
sed -n -e '/\*Main End/{g;p;q;};h' file1

This returns only the line before the Main End line. Do you really need that Main End line as well? If so try this one:
sed -n -e '/\*Main End/{H;g;p;q;};h' file1
Thanks for the reply.
I am afraid, It wont return anything either of these..

I need only the previous line..
# 7  
Old 12-18-2007
Quote:
Originally Posted by user_prady
Thanks for the reply.
I am afraid, It wont return anything either of these..

I need only the previous line..
Excuse me? I just retested them on both of your data files. Both sed commands continue to work correctly for me on both of your files.

Code:
$ cat file1
*Comment Frame 641 at 666.667 us
000000,CB1F,0,0,0,0,1,0,1
*Main End
$ sed -n -e '/\*Main End/{H;g;p;q;};h' file1
000000,CB1F,0,0,0,0,1,0,1
*Main End
$ sed -n -e '/\*Main End/{g;p;q;};h' file1
000000,CB1F,0,0,0,0,1,0,1
$
$
$
$
$
$ cat file2
000000,0000,0,0,2,0,0,0,0
*Comment Frame
5,7E3D,0,0,0,0,1,0,1
*Main End
$ sed -n -e '/\*Main End/{H;g;p;q;};h' file2
5,7E3D,0,0,0,0,1,0,1
*Main End
$ sed -n -e '/\*Main End/{g;p;q;};h' file2
5,7E3D,0,0,0,0,1,0,1
$

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Remove new line starting with a numeric value and append it to the previous line

Hi, i have a file with multiple entries. After some tests with sed i managed to get the file output as follows: lsn=X-LINK-IN0,apc=661:0,state=avail,avail/links=1/1, 00,2110597,2094790,0,81,529,75649011,56435363, lsn=TM1ITP1-AM1ITP1-LS,apc=500:0,state=avail,avail/links=1/1,... (5 Replies)
Discussion started by: nms
5 Replies

2. Shell Programming and Scripting

How to print previous line of multiple pattern matched line?

Hello, I have below format log file, Comparing csv_converted_files/2201/9747.1012H67126.5077292103609547345.csv and csv_converted_files/22019/97447.1012H67126.5077292103609547345.csv Comparing csv_converted_files/2559/9447.1012H67126.5077292103609547345.csv and... (6 Replies)
Discussion started by: arvindshukla81
6 Replies

3. UNIX for Advanced & Expert Users

How to find a string in a line in UNIX file and delete that line and previous 3 lines ?

Hi , i have a file with data as below.This is same file. But actual file contains to many rows. i want to search for a string "Field 039 00" and delete that line and previous 3 lines in that file.. Can some body suggested me how can i do using either sed or awk command ? Field 004... (7 Replies)
Discussion started by: vadlamudy
7 Replies

4. UNIX for Dummies Questions & Answers

How to remove fields space and append next line to previous line.?

awk 'BEGIN{FS = "Ç"} NR == 1 {p = $0; next} NF > 1 {print p; p = $0} NF <= 1 {p = (p " " $0)} END {print p}' input.txt > output.txt This is what the input data file looks like with broken lines Code: 29863 Ç890000000 Ç543209911 ÇCHNGOHG Ç000000001 Ç055 ... (4 Replies)
Discussion started by: cumeh1624
4 Replies

5. Shell Programming and Scripting

Remove previous line if next & previous lines have same 4th character.

I want to remove commands having no output. In below text file. bash-3.2$ cat abc_do_it.txt grpg10so>show trunk group all status grpg11so>show trunk group all status grpg12so>show trunk group all status GCPKNYAIGT73IMO 1440 1345 0 0 94 0 0 INSERVICE 93% 0%... (4 Replies)
Discussion started by: Raza Ali
4 Replies

6. Shell Programming and Scripting

Sed Comparing Parenthesized Values In Previous Line To Current Line

I am trying to delete lines in archived Apache httpd logs Each line has the pattern: <ip-address> - - <date-time> <document-request-URL> <http-response> <size-of-req'd-doc> <referring-document-URL> This pattern is shown in the example of 6 lines from the log in the code box below. These 6... (1 Reply)
Discussion started by: Proteomist
1 Replies

7. Shell Programming and Scripting

Delete line with match and previous line quoting/escaping problem

Hi folks, I've list of LDAP records in this format: cat cmmac.export.tmp2 dn: deviceId=0a92746a54tbmd34b05758900131136a506,ou=devices,ou=customer,ou=nl,o=upc cmmac: 00:13:11:36:a5:06 dn: deviceId=0a92746a62pbms4662299650015961cfa23,ou=devices,ou=customer,ou=nl,o=upc cmmac:... (4 Replies)
Discussion started by: tomas.polak
4 Replies

8. Shell Programming and Scripting

sed: appending alternate line after previous line

Hi all, I have to append every alternate line after its previous line. For example if my file has following contents line 1: unix is an OS line 2: it is open source line 3: it supports shell programming line 4: we can write shell scripts Required output should be line1: unix is an OS it is... (4 Replies)
Discussion started by: rish_max
4 Replies

9. UNIX for Dummies Questions & Answers

return previous line for pattern match

Hi, Need some idea on file processing, I have file like below, Processing al sources ... ...No value found : CHECK. Completed comparing all sources. Comparing schedulers... Processing al targets ... ...No value found : From above I need to extract the line where "No value... (4 Replies)
Discussion started by: braindrain
4 Replies

10. Shell Programming and Scripting

Return status of all previous runs

hi, I set the crontab to execute script A every 5 minutes from 9:00 am to 4:00 pm everyday, now at 12:00am I want to run another script if and only if all the previous runs of script A return OK, can anyone tell me how it could be done? thank you very very much! (4 Replies)
Discussion started by: mpang_
4 Replies
Login or Register to Ask a Question