sed make me headache... need help!


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting sed make me headache... need help!
# 1  
Old 04-08-2005
sed make me headache... need help!

I've still a little problem with sed.
So, the content of my file.txt is like:

101.10.20.2.1079 > 101.11.2.20.80:
101.10.20.2.1080 > 101.11.2.20.80:
101.10.20.2.1081 > 101.10.20.2..80:
101.05.15.143.1068 > tpo68-96-22-1.no.no.cox.net.4391:
101.05.15.143.1072 > bzq-130-119-40.pop.bezeqint.com.23373:
101.05.15.143.1073 > dhcp024-320-77-020.woh.rr.gr.32341:
server.2391 > 200.19.2.10.telnet:
server.2391 > google.com.www:
server.writesrv > 200.19.10.2.ssh:
server.xinuexpansion > gregor.ngu.com.www:

And i want only to delete the port, like so:

101.10.20.2 > 101.11.2.20
101.10.20.2 > 101.11.2.20
101.10.20.2 > 101.10.20.2
101.05.15.143 > tpo68-96-22-1.no.no.cox.net
101.05.15.143 > bzq-130-119-40.pop.bezeqint.com
101.05.15.143 > dhcp024-320-77-020.woh.rr.gr
server > 200.19.2.10
server > google.com
server > 200.19.10.2
server > gregor.ngu.com

Delete the ip address is easy but only the port is hard...
sed 's/\.*> //' file.txt
I don't see how to do that!
Has someone an idea?

Thankx
# 2  
Old 04-08-2005
What about this?

Code:
testcn@bernardchan testcn$ sed -ne 's/\([^ ]*\)\.[0-9A-Za-z]\+/\1/g; s/:$//; p' < /tmp/file.txt
101.10.20.2 > 101.11.2.20
101.10.20.2 > 101.11.2.20
101.10.20.2 > 101.10.20.2.
101.05.15.143 > tpo68-96-22-1.no.no.cox.net
101.05.15.143 > bzq-130-119-40.pop.bezeqint.com
101.05.15.143 > dhcp024-320-77-020.woh.rr.gr
server > 200.19.2.10
server > google.com
server > 200.19.10.2
server > gregor.ngu.com

# 3  
Old 04-08-2005
Single command:

Code:
sed 's/\(.*\)[.][0-9]* > \(.*\)[.][0-9a-z]*:/\1 > \2/' yourfile > yournewfile

# 4  
Old 04-11-2005
Hi reborg

Great it worksSmilie... Thankx a lot!
Could you please explain me, why the expression \(.*\)[.][0-9]* doesn't take the port number? Is the bracket \(\) egal to \{\}?

rg nymus
# 5  
Old 04-11-2005
It's probably easier if I explain the whole line:

Code:
sed 's/\(.*\)[.][0-9]* > \(.*\)[.][0-9a-z]*:/\1 > \2/' yourfile > yournewfile

I'll illustreate with this line:
101.05.15.143.1068 > tpo68-96-22-1.no.no.cox.net.4391:


\(.*\) matches any expression and stores it --> 101.05.15.143
[.][0-9]* matches a '.' followed by a number --> .1069
" > " matches the space > space in the middle
\(.*\) matches any expression and stores it --> tpo68-96-22-1.no.no.cox.net
[.][0-9a-z]*: matches a '.' followed by any number of numbers or lowercase letters followed by a ':' --> .4391:

\1 > \2 first stored value followed by > followed by the second stored value --> 101.05.15.143 > tpo68-96-22-1.no.no.cox.net

Since I only stored the two hostname/ipaddress fields, but matched the entire line I then replace the entire input line by the two stored values and a ">" between them and the output becomes:
101.05.15.143 > tpo68-96-22-1.no.no.cox.net
# 6  
Old 04-12-2005
Thank you for your explanation! Now it's very clear, i understood well.
Regards
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Beginner: script headache

Hi, I am new to shell scripting, but doing my best to learn things. Today doing courses there was exercise like this: #!/usr/bin/bash a=$1 b=$2 if ] then echo "Conditions are met" else echo "Conditions are not met" fi I improved it a little, beacuse of curiosity :D to this: ... (8 Replies)
Discussion started by: Rosentine
8 Replies

2. UNIX for Advanced & Expert Users

ssh command headache

Good day, I am trying to run a ssh command on a remote server, but when I run the command the server takes FOREVER... and ends up giving me an error.. then the script also kicks server load up by 100% while it is running.. But if I run the same command on the server it goes pretty quickly and... (3 Replies)
Discussion started by: msullivan
3 Replies

3. UNIX for Dummies Questions & Answers

formatting a file headache

Hello does anyone know how to do the following using some simple unix if possible: I have a file with the following info as comma separated. It shows username, id number and all the subjects they are enrolled in on the one line. The subjects are separated by colons. UserName,ID,Subject... (13 Replies)
Discussion started by: ynneycat
13 Replies

4. Shell Programming and Scripting

Friday afternoon headache

Hi all, It's been a long week and my brain is clearly not functioning right so hopefully someone can help me out here. I've got a function in a script which just checks if a MySQL database directory exists or not. Code is as follows: dbCheck2() { if ; then { : # carry... (4 Replies)
Discussion started by: _Spare_Ribs_
4 Replies

5. Shell Programming and Scripting

scripting headache... loops & variables

Surely there's an easier way to do this, lets see if anyone knows! I am new to scripting so go easy on me! I have the following script and at the moment it doesn't work and I believe the problem is that I am using a while loop within a while loop. When I run the script using sh -x I can see... (6 Replies)
Discussion started by: StevePace
6 Replies

6. UNIX for Dummies Questions & Answers

sed headache

Hi all, I've got a thorny sed/regex problem and I thought somebody out there might be able to help. I'd like to use sed in a Makefile to parse a path string. The path might look like this: case 1: /mnt/users/bob/build/src or case 2: /mnt/users/bob/build/src/foo or case 3: ... (4 Replies)
Discussion started by: gnarl
4 Replies

7. Shell Programming and Scripting

Make sed ignore lines

Hi I use sed in a script for severall changes in files. I whish one of the substitutions I made to be aplied to every line that has the word "scripts" with the exception for the ones that start with "rsh", wich I wish sed to ignore . Is this possible? If yes, how can I do it? The substitution... (2 Replies)
Discussion started by: Scarlos
2 Replies

8. Solaris

A very headache problem

guys, need your help~~~~ I am setting up a Sun Enterprise 450 Ultra 4 server originally I was using Sun solaris 9 1202 version. but after an accident (i guess becoz i deleted something wrongly), the system cannot boot up. and now I wana install a FreeBSD(since it is free and it will... (3 Replies)
Discussion started by: MrDJay
3 Replies

9. IP Networking

DHCP client & ipchains headache

Hi all, I upgraded my SUSE 6.1 to SUSE 7.1 and at once the following things won't work anymore: 1) My DHCP client is not able anymore to retrieve my IP address from the @home server. It times out all the time. If I use a fixed IP I can get on the net, so there is no physical problem. 2) I... (3 Replies)
Discussion started by: Micky
3 Replies

10. UNIX for Dummies Questions & Answers

extremely headache

I need to execute command at remote host from my program. there is rs6000/aix standard command called rexec. unfortunately rexec ask username and password which must supplied interactively, of course it is impossible runned by program. So I have to change rexec command format to make user-name... (5 Replies)
Discussion started by: yatno
5 Replies
Login or Register to Ask a Question