sed hash in multiple lines


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting sed hash in multiple lines
# 1  
Old 12-17-2013
sed hash in multiple lines

Hi everybody,

I am writing a little script to manage keystores and need some help with sed.

The output of the keystore file is like:

Code:
vi 2, Dec 7, 2012, trustedCertEntry,
Certificate fingerprint (MD5): F9:1F:FE:E6:A3:CB:99:88:44:D4:67:ED:G5:F8:97:7A
system@remote-server, Dec 17, 2013, PrivateKeyEntry,
Certificate fingerprint (MD5): 2A:DD:4B:C5:AD:B0:MF:96:51:B0:14:4A:B5:6C:99:FB
verisign intermediate 1, Dec 7, 2012, trustedCertEntry,
Certificate fingerprint (MD5): 4E:F6:A0:FC:40:0C:AE:9C:05:2F:AE:99:C6:7D:37:9F

So what I want, is the hash sum of "system@remote-server" (e.g. 2A:DD:4B:C5:AD:B0:MF:96:51:B0:14:4A:B5:6C:99:FB)

What I tried as far is:

sed -e "system@remote-server.*PrivateKeyEntry,/,/Certificate fingerprint.*:[a-zA-Z0-9]{2}$/ {/\([[a-zA-Z0-9]{2}[:]]*[a-zA-Z0-9]{2}$\)/\1/p}"

and

sed -n "s/system@remote-server.*PrivateKeyEntry.*Certificate fingerprint:*([a-zA-Z0-9_-]): \([[a-zA-Z0-9]{2}[:]]*[a-zA-Z0-9]{2}$\)/\1/p"

but I don't get any output for them.

ps: the easy way would be grep -A 1 "system@remote-server.*PrivateKeyEntry" | tail -1 | cut -f 4 -d " ", but it is not reliable. Therefore I want to do it with sed.

Does anybody have a solution for me?

Thank you all in advance and regards
Hamss
# 2  
Old 12-17-2013
Hello,

Could you please use the following code for same.


Code:
awk '/system@remote-server, Dec 17, 2013, PrivateKeyEntry,/ {getline; print $0}' file_name | sed 's/Certificate fingerprint (MD5): //g'

Output will be as folllows.


Code:
2A:DD:4B:C5:AD:B0:MF:96:51:B0:14:4A:B5:6C:99:FB


Thanks,
R. Singh
This User Gave Thanks to RavinderSingh13 For This Post:
# 3  
Old 12-17-2013
Hi,
In sed:
Code:
sed -n -e '/system@remote-server.*PrivateKeyEntry/,/Certificate fingerprint/{/system@remote-server.*PrivateKeyEntry/d;s/.* \([0-9A-F]\+:\)/\1/p;}'

Simplified:
Code:
sed -n -e '/system@remote-server.*PrivateKeyEntry/,/Certificate fingerprint/{/Certificate fingerprint/s/.* \([0-9A-F]\+:\)/\1/p;}'

Because "d" command is not need with "-n" option...(why delete line that we won't print ?)
Regards.

Last edited by disedorgue; 12-17-2013 at 11:47 AM.. Reason: Simplified sed
This User Gave Thanks to disedorgue For This Post:
# 4  
Old 12-17-2013
Code:
sed -n '/system@remote-server/{n;s/.* //p}' file

2A:DD:4B:C5:AD:B0:MF:96:51:B0:14:4A:B5:6C:99:FB

This User Gave Thanks to in2nix4life For This Post:
# 5  
Old 12-17-2013
Quote:
Originally Posted by in2nix4life
Code:
sed -n '/system@remote-server/{n;s/.* //p}' file

2A:DD:4B:C5:AD:B0:MF:96:51:B0:14:4A:B5:6C:99:FB

I'm not sure that this solution is possible otherwise the solution will also be possible with grep...
# 6  
Old 12-17-2013
Quote:
Originally Posted by disedorgue
I'm not sure that this solution is possible otherwise the solution will also be possible with grep...
This actually does not work in my case...

Thank you all for the suggestions. I need to play a bit around with them.

General question; Is it possible to merge multiple regex into one?

E.g. for this case.
We have a this hash and want to make a regex ohny for this pattern 2A:DD:4B:C5:AD:B0:MF:96:51:B0:14:4A:B5:6C:99:FB

So I am increasing the patterns, and merging one into an other:
1. pattern: ([A-Z0-1][A-Z0-1]:) set pattern
2. pattern: ([[A-Z0-1][A-Z0-1]:]*) pattern 1 0-infinite times
3. pattern: ([[A-Z0-1][A-Z0-1]:]*[A-Z0-1][A-Z0-1]) and put the last two chars at the end

Is this possible?

---------- Post updated at 07:19 PM ---------- Previous update was at 06:05 PM ----------

Quote:
Originally Posted by RavinderSingh13
Code:
awk '/system@remote-server, Dec 17, 2013, PrivateKeyEntry,/ {getline; print $0}' file_name | sed 's/Certificate fingerprint (MD5): //g'

Thanks this works good in my case. But I would like to pattern the hash itself. How would you do that?
# 7  
Old 12-17-2013
Code:
$ cat file
vi 2, Dec 7, 2012, trustedCertEntry,
Certificate fingerprint (MD5): F9:1F:FE:E6:A3:CB:99:88:44:D4:67:ED:G5:F8:97:7A
system@remote-server, Dec 17, 2013, PrivateKeyEntry,
Certificate fingerprint (MD5): 2A:DD:4B:C5:AD:B0:MF:96:51:B0:14:4A:B5:6C:99:FB
verisign intermediate 1, Dec 7, 2012, trustedCertEntry,
Certificate fingerprint (MD5): 4E:F6:A0:FC:40:0C:AE:9C:05:2F:AE:99:C6:7D:37:9F

Code:
$ awk '/system@remote-server/ && getline && gsub(/.*\): /,x)' file

2A:DD:4B:C5:AD:B0:MF:96:51:B0:14:4A:B5:6C:99:FB

This User Gave Thanks to Akshay Hegde For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Use sed commands on multiple lines

I have a text file and i want to run 3 sed commands for the lines entered by the user using perl script. I am doing this manually till now. need some help with this The sed commands I have to use are : sed -i "s/{+//" error.txt sed -i "s/+}//" error.txt sed -i "s/\//g" error.txt... (5 Replies)
Discussion started by: utkarshkhanna44
5 Replies

2. Shell Programming and Scripting

Replace multiple lines through sed

Hi All, I have a input file as sample below <this is not starting of file> record line1 line2 line3 end line4 line5 record line6 line7 line8 my requirement is this, i want to select a pattern between first record and end, whatever is written between first record and end. and... (0 Replies)
Discussion started by: adgangwar
0 Replies

3. UNIX for Dummies Questions & Answers

sed command, make multiple lines into one

:confused:Hi, I'm relativley new at unix so am having difficulties at the most basic of areas. I am trying using sed to make multiple lines into one line. For example, i would like: Mary had a little lamb to look like this Maryhadalittlelamb so far i have tried sed... (1 Reply)
Discussion started by: cavanac2
1 Replies

4. Shell Programming and Scripting

How to use SED to join multiple lines?

Hi guys, anyone know how can i join multiples lines using sed till the end of a file and output to another file in a single line? The end of each line will be replaced with a special char "#". I am using the below SED command, however it seems to remove the last 2 lines. Also not all lines... (12 Replies)
Discussion started by: DrivesMeCrazy
12 Replies

5. Shell Programming and Scripting

Sed: Combining Multiple Lines into one

Before I ask my actual question, is it going to be a problem that I want to run this process on a 15 Gig file that is ~140 million rows? What I'm trying to do: I have a file that looks like Color,Type,Count,Day Yellow,Full 5 Tuesday Green,Half 6 Wednesday Purple,Half 8 Tuesday ...... (3 Replies)
Discussion started by: goldfish
3 Replies

6. Shell Programming and Scripting

sed substitution and multiple lines

I have a file names 'log.txt' that looks something like this: #This is a comment /sbin/iptables -A INPUT -p tcp -s ip.of.a machine --destination-port 21 -j ACCEPT #This is the comment to read# /sbin/iptables -A INPUT -p tcp -s ip.of.a.machine --destination-port 21 -j ACCEPT I would like... (1 Reply)
Discussion started by: manouche
1 Replies

7. Shell Programming and Scripting

sed: working with multiple lines

Got another sed question :) My text block is I need to do the following: If (and only if) the line starting with 10002,11 is followed by a line starting with 10004,9 , insert the line 10003,9 between the 2 Thus, my output should be I tried but this gives me (the order... (3 Replies)
Discussion started by: orno
3 Replies

8. Shell Programming and Scripting

Use sed to merge multiple lines

Hi all: I have a file in which the contents are as following: ... This is a test ONE TWO Hello, world! XXX YYY CCC test again three, four five six seven world AAA BBB QQQ test eight, nine world (3 Replies)
Discussion started by: xb88
3 Replies

9. Shell Programming and Scripting

Delete multiple lines w/ sed

Hi all, I am trying to figure out the syntx to delete multiple lines w/ sed. I know the following syntax will delete lines 1 THROUGH 5 from filex: sed 1,5d filex But I wan to delete lines 1 AND 5 (keeping lines 2,3, and 4). Does anyone know how to do this in a single sed statement? ... (2 Replies)
Discussion started by: bookoo
2 Replies

10. Shell Programming and Scripting

Deleting Multiple Lines with sed

I am trying to use sed to delete multiple lines in a file. The problem is that I need to search for a certain line and then once found delete it plus the next 4 lines. For instance if I had a file that consisted of the following lines: #Data1.start ( (Database= data1) (Name = IPC)... (1 Reply)
Discussion started by: rambo15
1 Replies
Login or Register to Ask a Question