Visit Our UNIX and Linux User Community


Removing extra unwanted spaces


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Removing extra unwanted spaces
# 1  
Old 08-22-2012
Removing extra unwanted spaces

hi,

i need to remove the extra spaces in the 2nd field.

Sample:
Code:
abc|bd |bkd123 .. 1space
abc|badf  |bakdsf123 .. 2space
abc|bqe   |bakuowe .. 3space

Output:
Code:
abc|bd|bkd123
abc|badf|bakdsf123
abc|bqe|bakuowe

i used the following command,
Code:
nawk -F\~ 'OFS=FS { gsub(" ", "", $2) }1'

but it doesnt remove if it has more than one space
# 2  
Old 08-22-2012
Code:
sed 's/ .*|/|/' <file.txt>

output:
Code:
abc|bd|bkd123 .. 1space
abc|badf|bakdsf123 .. 2space
abc|bqe|bakuowe .. 3space


Last edited by zaxxon; 08-22-2012 at 10:57 AM.. Reason: code tags
# 3  
Old 08-22-2012
You using wrong field seperator friend.
Try using this one :

Code:
$ awk -F\| 'OFS=FS {gsub(" ","",$2);print}' test

Input :
Code:
$ cat test
abc|bd     |bkd123
abc|badf   |asdasf132e2
abc|bqe      |badfafa

Output :
Code:
abc|bd|bkd123
abc|badf|asdasf132e2
abc|bqe|badfafa

# 4  
Old 08-22-2012
Quote:
Originally Posted by anshaa
...
CODE]
nawk -F\~ 'OFS=FS { gsub(" ", "", $2) }1'
[/CODE]but it doesnt remove if it has more than one space
Your command should work once you give it the correct field separator (maybe a bit tricky though for "|"; see other recent posts)

I guess
Code:
tr -d ' ' <infile

would do too much as it removes all spaces in the entire file...
# 5  
Old 08-22-2012
Bug

try this...

Code:
$ cat file
abc|bd |bkd123 .. 1space
abc  |badf  |bakdsf123 .. 2space
abc |bqe   |bakuowe .. 3space

$awk -F "|" '{ gsub(" ","",$2)}1' OFS=\| file

abc|bd|bkd123 .. 1space
abc  |badf|bakdsf123 .. 2space
abc |bqe|bakuowe .. 3space

# 6  
Old 08-22-2012
Quote:
Originally Posted by frappa
Code:
sed 's/ .*|/|/' <file.txt>

This will work only for the first occurrence in a line, because you omitted the "g" in hte commands options, probably an oversight. But even given this it will work only in the sample case of trailing blanks, but will fail in case of blanks within values:

Code:
|first|second  |third fourth|

will give you:

Code:
|first|second|third|

This one would work as expected, though (replace "<spc>" and "<tab>" with literal spaces/tabs):

Code:
sed 's/[<spc><tab>][<spc><tab>]*|/|/g' <file.txt>

I hope this helps.

bakunin
# 7  
Old 08-22-2012
Quote:
Originally Posted by bakunin
This will work only for the first occurrence in a line, because you omitted the "g" in hte commands options, probably an oversight. But even given this it will work only in the sample case of trailing blanks, but will fail in case of blanks within values
Both behaviors may very well be correct.

Quote:
Originally Posted by anshaa

i need to remove the extra spaces in the 2nd field.

Sample:
Code:
abc|bd |bkd123 .. 1space
abc|badf  |bakdsf123 .. 2space
abc|bqe   |bakuowe .. 3space

Output:
Code:
abc|bd|bkd123
abc|badf|bakdsf123
abc|bqe|bakuowe

Regards,
Alister

---------- Post updated at 11:51 AM ---------- Previous update was at 11:47 AM ----------

For sed, I would suggest the following, which is resilient to trailing spaces in the first field:
Code:
sed 's/ *|/|/2'

Regards,
Alister

Last edited by alister; 08-22-2012 at 02:00 PM..

Previous Thread | Next Thread
Test Your Knowledge in Computers #415
Difficulty: Easy
HTML, CSS, and JavaScript are the three core technologies of the World Wide Web.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Grep string causes extra spaces

Hello, I have an xml file and my aim is to grab each line in keywords file and search the string in another file. When keyword is found in xml file,I expect the script to go to previous line in the xml file and grab the string/value between two strings. It's almost working with an error. tab... (6 Replies)
Discussion started by: baris35
6 Replies

2. UNIX for Beginners Questions & Answers

Removing unwanted symbols with sed

I would like produce blue, green, red, yellowfrom"blue:,*green:,*red:,*yellowI can remove the colon with echo "blue:,*green:,*red:,*yellow" | sed 's/://g'which givesblue,*green,*red,*yellowbut when I try echo "blue:,*green:,*red:,*yellow" | sed 's/://g'; 's/*//g'I get bash: s/*//g: No such... (9 Replies)
Discussion started by: Xubuntu56
9 Replies

3. Shell Programming and Scripting

Removing extra unwanted spaces

hi, i need to remove the extra spaces in the filed. Sample: abc~bd ~bkd123 .. 1space abc~badf ~bakdsf123 .. 2space abc~bqed ~bakuowe .. 3space output: abc~bd ~bkd123 .. 1space abc~badf~bakdsf123 .. 2space abc~bqed~bakuowe .. 3space i used the following command, (2 Replies)
Discussion started by: anshaa
2 Replies

4. Shell Programming and Scripting

Removing unwanted tags from xml file

I have a XML file given as below: "<ProductUOMAlternativeDetails> <removetag> <UOMCode>EA</UOMCode> <numeratorForConversionToBaseUOM>1</numeratorForConversionToBaseUOM> <denominatorForConversionToBaseUOM>1</denominatorForConversionToBaseUOM> <length>0.59</length> <width>0.96</width> ... (3 Replies)
Discussion started by: vikingh
3 Replies

5. Shell Programming and Scripting

removing unwanted characters from a file

i have a file like this 1111_2222#$#$dudgfdk 11111111_343434#$#$334 1111_22222#43445667 i want to remove all those charachetrs from # how can i do this Thank in advance Saravanan (4 Replies)
Discussion started by: saravanan71184
4 Replies

6. Shell Programming and Scripting

Removing blank spaces, tab spaces from file

Hello All, I am trying to remove all tabspaces and all blankspaces from my file using sed & awk, but not getting proper code. Please help me out. My file is like this (<b> means one blank space, <t> means one tab space)- $ cat file NARESH<b><b><b>KUMAR<t><t>PRADHAN... (3 Replies)
Discussion started by: NARESH1302
3 Replies

7. Shell Programming and Scripting

How to remove extra spaces from a string??

Hi, I have a string like this and i want to remove extra spaces that exists between the words. Here is the sentence. $string="The small DNA genome of hepadnaviruses is replicated by reverse transcription via an RNA intermediate. This RNA "pregenome" contains ... (2 Replies)
Discussion started by: vanitham
2 Replies

8. Shell Programming and Scripting

remove extra spaces between fields

Hi, I have a source file as mentioned below: I want to remove all the extra spaces between the fields. a b--------|sa df-------|3232---|3 sf sa------|afs sdf-----|43-----|33 a b c------|adfsa dsf---|23-32|23 *Here '-' idicates spaces Now, I want output as below: a b|sa df|3232|3... (7 Replies)
Discussion started by: srilaxmi
7 Replies

9. Shell Programming and Scripting

Remove extra spaces in a line

Hi, I need a help in deleting extra spaces in a text. I have a huge file, a part of it is :- 3 09/21/08 03:32:07 started undef mino Oracle nmx004.wwdc.numonyx.com Message Text : The Oracle session with the PID 1103 has a CPU time ... (6 Replies)
Discussion started by: vikas027
6 Replies

10. UNIX for Dummies Questions & Answers

To remove the extra spaces in unix

Hi... I am quite new to Unix and would like an issue to be resolved. I have a file in the format below; 4,Reclaim,ECXTEST02,abc123,Harry Potter,5432 6730 0327 5469,0603,,MC,,1200,EUR,sho-001,,1,,,abc123,1223 I would like my output to be as follows; 4,Reclaim,ECXTEST02,abc123,Harry... (4 Replies)
Discussion started by: Sho
4 Replies

Featured Tech Videos