How to match (whitespace digits whitespace) sequence?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How to match (whitespace digits whitespace) sequence?
# 1  
Old 09-19-2010
How to match (whitespace digits whitespace) sequence?

Hi

Following is an example line.

Code:
echo "192.22.22.22 [23ddddd] \"33dffwef\" 200 300 dsdsd"  | sed "s:\(\ [0-9]*\ \):\1:"

I want it's output to be

200

However this is not the case. Can you tell me how to do it? I don't want to use AWK for this. Secondly, how can i fetch just 300? Should I use "\2" for that?

When i use the following code
Code:
echo "192.22.22.22 [23ddddd] \"33dffwef\" 200 300 dsdsd"  | sed "s:\(\ [0-9]*\ \):TEST:"

200 gets replaced by TEST. If it can MATCH 200, why is it not showing it?

Thanks in advance.
# 2  
Old 09-19-2010
MySQL

Quote:
Originally Posted by shahanali
200 gets replaced by TEST. If it can MATCH 200, why is it not showing it?
It is showing! However you don't see it as such.

Let's analyze it:
Code:
sed "s:\(\ [0-9]*\ \):\1:"

It matches space200space and encapsulates it, right?

Code:
sed "s:\(\ [0-9]*\ \):\1:"

It replaces it with what it was encapsulated, as TEST proved it. Nevertheless, since 200 is replaced by 200, you don't think it did.

You have to match the whole and disregard what you don't want.
Code:
echo "192.22.22.22 [23ddddd] \"33dffwef\" 200 300 dsdsd"  | sed "s:.*\(\ [0-9]*\ \)[0-9].*:\1:"

That matches the space200space.
If you want space300space
Code:
echo "192.22.22.22 [23ddddd] \"33dffwef\" 200 300 dsdsd"  | sed "s:.*\(\ [0-9]*\ \).*:\1:"

Removing the [0-9] will do it, because of the greedy nature of the first .*

Last edited by Aia; 09-19-2010 at 10:08 PM..
This User Gave Thanks to Aia For This Post:
# 3  
Old 09-19-2010
Thanks Aia

Thanks a lot. And I was trying for such a long time to select what I want Smilie
# 4  
Old 09-19-2010
Quote:
Originally Posted by shahanali
I don't want to use AWK for this
...
And I was trying for such a long time
$ echo "192.22.22.22 [23ddddd] \"33dffwef\" 200 300 dsdsd" | awk '{print $5}'
300
$ echo "192.22.22.22 [23ddddd] \"33dffwef\" 200 300 dsdsd" | awk '{print $4}'
200

Code:

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Separate by more than whitespace.

This is my file .........hostname.............this is hostname .........alias...................alias name Remark use dot(.) instead of whitespace B'cuz this forum not allow to use more whitespace. --------------------------------------- I sperate by whitespace not work. awk 'BEGIN {FS=" "}... (4 Replies)
Discussion started by: cyberking
4 Replies

2. UNIX for Dummies Questions & Answers

adding whitespace

Hi guys, I am working with large data sets and often times realize that not all of the columns are aligned correctly (sometimes rows will be shifted). So when I try to do something like: awk '{ if ($2 > 30 && $5 == $3){print}}' file > output it won't really work since some of the rows... (2 Replies)
Discussion started by: verse123
2 Replies

3. Shell Programming and Scripting

Getting rid of whitespace

Hello I am working aon script, that tells me how many users or on the system when i run it. The script is #!/bin/bash w | cut -f 1 -d ' ' |sort -u | wc -l When ran it shows 16 users including myself and a line of white space. I was wondering what I need to add to remove my user... (2 Replies)
Discussion started by: mosdojaf
2 Replies

4. UNIX for Advanced & Expert Users

whitespace problem

I have a single string as below: Rat run after Cat i.e. there is a single whitespace after Cat. This causes my file to fail. Is there a way I can remove any whitespace at the end of any string. I tried sed 's/ *//g', but it removes all white space and the above string becomes... (10 Replies)
Discussion started by: RubinPat
10 Replies

5. UNIX for Dummies Questions & Answers

remove whitespace

I combined 2 files using the paste command. It gave me something like this: 123445 ,AABBNN 22344 ,BBVVMM I want to remove the whitespace between the end of string 1 and the comma (there is more blank space than my post is showing). Would I... (2 Replies)
Discussion started by: nickg
2 Replies

6. Shell Programming and Scripting

Whitespace Issues

Hello forums! I've been tinkering with a shell script to partition and restore content to a drive based on a type of file in a given directory. My goal is for my script to assemble several restore images, partition the drive based on the images and to then restore those images to the partitions... (1 Reply)
Discussion started by: rkasowan
1 Replies

7. Shell Programming and Scripting

split whitespace help

I have a file that I am spliting and parsing, if data starts with an N/n toos it (which works) but I want it to also see if the data is blank and toss it. What I have does not toss the blank space for dduck???? here is the data file and code I have..... efudd 7546 bbunny N0542 tdevil... (3 Replies)
Discussion started by: theninja
3 Replies

8. Shell Programming and Scripting

Of bash and whitespace...

Hmmm... Bash doesn't parse whitespace with a read. lev@sys09:~$ read line; echo "$line" test test You can imagine what this does if you're using a shell script to read a list of unknown file names containing unknown spaces. lev@sys09:~$ read word1 word2; echo "$word1,$word2" 123 456... (2 Replies)
Discussion started by: lev_lafayette
2 Replies

9. Shell Programming and Scripting

Delete whitespace

Hi, I have been trying to remove whitespace from a file using sed. Here is an example of what im trying to do: www1 = www1 www2 = www2 www3 = www3 and all the way to 300 and i want it to look like: www1=www1 www2-www2 www3=www3 again upto 300 Any help... (12 Replies)
Discussion started by: truck7758
12 Replies

10. Shell Programming and Scripting

trim whitespace?

I'm trying to find a command that will trim the white space off a string. e.g. $str = " stuf " $str = trim ( $str ) echo $str // ouput would just be stuf Thanks, Mark (4 Replies)
Discussion started by: msteudel
4 Replies
Login or Register to Ask a Question