sed hash in multiple lines


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting sed hash in multiple lines
# 8  
Old 12-17-2013
Some more:
Code:
awk 'f{print $NF; f=0} /system@remote-server/{f=1}' file

Code:
sed '/system@remote-server/!d;N;s/.* //' file

These 2 Users Gave Thanks to Scrutinizer For This Post:
# 9  
Old 12-17-2013
Hello Scrutinizer,

Thanks a lot for nice code. Could you please explain the code please.


Thanks,
R. Singh
# 10  
Old 12-17-2013
Sure:
Code:
awk '
  f{                         # if f=1 then (if a match was found previously)
    print $NF                # print the last field
    f=0                      # reset f ( set found is false)
  } 
  /system@remote-server/{    # if a match is found
    f=1                      # then set f to 1
  }
' file


Code:
sed '
  /system@remote-server/!d   # if a match is found then do not delete the line
  N                          # append the next line to the current line
  s/.* //                    # delete everything unto and including the last space
' file

This User Gave Thanks to Scrutinizer For This Post:
# 11  
Old 12-17-2013
Quote:
Originally Posted by Hamss
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?
In your hash, I doubt you have :MF:
In general, it's a serie of hex digit.
Your pattern 2 is not pattern 1 0-infinite times, you can simplified your pattern 2 as: ([A-Z0-1:]*)
If you want pattern 1 0-infinite, you can do as: (([A-Z0-1][A-Z0-1]:)*)
And so, pattern 3: (([A-Z0-1][A-Z0-1]:)*[A-Z0-1][A-Z0-1])

And if you want that your pattern is a regex for your hash, the pattern 3 will:
(([0-9A-F][0-9A-F]:)*[0-9A-F][0-9A-F])

Regards.
This User Gave Thanks to disedorgue For This Post:
# 12  
Old 12-17-2013
Thank you Scrutinizer for explaination. Here is one more approach for same.

Code:
$ awk '/system@remote-server, Dec 17, 2013, PrivateKeyEntry,/ {getline; gsub(/Certificate fingerprint/, "");print$NF}' file_name
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:
# 13  
Old 12-18-2013
If you want the regex to match the fingerprint, try:
Code:
sed -rn 's/.*(([A-F0-9]{2}:){15}[A-F0-9]{2})/\1/p' file

This does not necessarily work with all sed versions, and, as pointed out before, it matches HEX numbers only - if you really have sth. like MF in there, adapt the ranges.
This User Gave Thanks to RudiC For This Post:
# 14  
Old 12-18-2013
Quote:
Originally Posted by disedorgue
And if you want that your pattern is a regex for your hash, the pattern 3 will:
(([0-9A-F][0-9A-F]:)*[0-9A-F][0-9A-F])
Quote:
Originally Posted by RudiC
If you want the regex to match the fingerprint, try:
Code:
sed -rn 's/.*(([A-F0-9]{2}:){15}[A-F0-9]{2})/\1/p' file

Thanks a lot, that was what I wanted to know Smilie

---------- Post updated at 01:44 PM ---------- Previous update was at 01:39 PM ----------

Quote:
Originally Posted by disedorgue
In your hash, I doubt you have :MF:
Thats actually true. I've changed some digs before posting. Smilie
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