![]() |
Hello and Welcome from United States to the UNIX and Linux Forums! Thank You for Visiting and Joining Our Global Community.
|
|
google unix.com
|
|||||||
| Forums | Register | Forum Rules | Links | Albums | FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
| Shell Programming and Scripting Post questions about KSH, CSH, SH, BASH, PERL, PHP, SED, AWK and OTHER shell scripts and shell scripting languages here. |
More UNIX and Linux Forum Topics You Might Find Helpful
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Remove Trailing spaces after a delimiter | kiran_418 | UNIX for Dummies Questions & Answers | 1 | 04-29-2008 02:19 PM |
| How to remove trailing spaces | mahek_bedi | UNIX for Dummies Questions & Answers | 2 | 08-10-2007 07:21 AM |
| Removing leading and trailing spaces of data between the tags in xml. | jhmr7 | UNIX for Dummies Questions & Answers | 2 | 05-18-2005 10:27 AM |
| Strip leading and trailing spaces only in a shell variable with embedded spaces | jerardfjay | Shell Programming and Scripting | 6 | 03-07-2005 02:24 PM |
| Adding Trailing Spaces to a file | 222001459 | UNIX for Dummies Questions & Answers | 1 | 11-04-2004 03:23 PM |
![]() |
|
|
LinkBack | Thread Tools | Search this Thread | Rate Thread | Display Modes |
|
||||
|
Leading and Trailing Spaces
Hi,
how to i remove leading and trailing spaces from a line? the spaces can be behind or in front of any field or line example of a line in the input data: Amy Reds , 100 , /bin/sh how to i get it to be: Amy Read,100,/bin/sh i saw something on this on the Man pages for AWK but i dont really understand what it was talking about.. could someone help? thanks |
|
||||
|
thanks for your reply
i am using vi to do this.. i tried sed and it does not give me the output i want.. Amy Reds , 100 , /bin/sh --> would give me an output without any spaces in between i want to get the output as --> Amy Reds,100,/bin/sh there is a space between the first name and the last name i looked at some web pages and AWK seems to be the answer, however i dont know how to use it. thanks. |
|
||||
|
Regular Expressions
The pattern represents a regular expression
[ ] denotes a range of characters within the bracketed boundary, in this case a single space. The following * denotes "0 or more occurences". Thus, the pattern, [ ]* denotes a pattern match for 0 or more spaces. Places either side of a comma they produce the effect of mathcing a comma surrounded by spaces and then converting the matched string to a single comma. You may also want to check up on the use of [:space:] which essentially matches any whitespace (i.e. tabs also). |
|
|||||
|
To remove spaces either side of a comma and leading/trailing spaces. Try...
Code:
sed -e 's/[ ]*,[ ]*/,/g' -e 's/^[ ]*//' -e 's/[ ]*$//' file1 [ ]* = any number of spaces ^ = beginning of line $ = end of line man regexp for more details. You could also use awk, if you prefer... Code:
awk 'BEGIN{FS=OFS=","}{for(i=1;i<=NF;i++)gsub("(^[ ]*)|([ ]*$)","",$i)};1' file1
|
| Sponsored Links | ||
|
|
![]() |
| Bookmarks |
| Tags |
| regex, regular expressions |
| Thread Tools | Search this Thread |
| Display Modes | Rate This Thread |
|
|