How to remove spaces from a file selectively?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How to remove spaces from a file selectively?
# 1  
Old 10-01-2014
How to remove spaces from a file selectively?

Hi i have a file in which i am doing some processing.

The code is as follows:
Code:
#!/bin/ksh
grep DATA File1.txt >> File2.txt
sed 's/DATA//' File2.txt | tr -d ‘ ‘ >> File4.xls

As you can see my output is going in a xl file.The output consist of four columns/feilds out of which the first column has Date and time which looks like:
Code:
12 Sep 2014 14:00 EST

so if i give tr -d ' ' It works fine for other feilds( because they have values without internal space ) but it deletes spaces for my Date and time feild which looks like :
Code:
12Sep201414:00EST

Is there a way where i can delete only the spaces in rest of the feild leaving my first column?
# 2  
Old 10-01-2014
We need some more input from you, please post sample input (fields other than date & time stamp if any ) as well as expected output .

Thanks
# 3  
Old 10-01-2014
Input file File1:
Code:
xyz                                  Date                   Name        Age           State
------------------------------------------------------------------------------------
DATA                12 Sep 2014 14:00 EST        Alia             22           Chennai
SAND                12 Sep 2014 14:00 EST        Alia             22           Chennai
DATA                12 Sep 2014 14:00 EST        Ashika            22       Chennai
DATA                12 Sep 2014 14:00 EST        Bosky             22        Chennai
DATA                12 Sep 2014 14:00 EST        Swati             22         Chennai




Input file File2:
Code:
xyz                                  Date                   Name        Age           State
------------------------------------------------------------------------------------
DATA                12 Sep 2014 14:00 EST        Alia             22           Chennai
DATA                12 Sep 2014 14:00 EST        Ashika            22       Chennai
DATA                12 Sep 2014 14:00 EST        Bosky             22        Chennai
DATA                12 Sep 2014 14:00 EST        Swati             22         Chennai

As you can see there are some extra leading and trailling spaces.

input file File4(removes DATA)(xls file)
Code:
 Date                               Name        Age           State
-------------------------------------------------------------------------------
12Sep201414:00EST        Alia              22         Chennai
12Sep201414:00EST        Ashika          22         Chennai
12Sep201414:00EST        Bosky           22         Chennai
12Sep201414:00EST        Swati            22         Chennai

I dont want my date column to be edited with space i just want name age and state column to be removed the trailing and leading spaces.

Last edited by vbe; 10-01-2014 at 09:13 AM..
# 4  
Old 10-01-2014
How about
Code:
sed 's/ //7g; s/DATA //p; 1s/^[^ ]* //p; 2!d' file1
Date Name Age State
------------------------------------------------------------------------------------
12 Sep 2014 14:00 EST Alia22Chennai
12 Sep 2014 14:00 EST Ashika22Chennai
12 Sep 2014 14:00 EST Bosky22Chennai
12 Sep 2014 14:00 EST Swati22Chennai

This User Gave Thanks to RudiC For This Post:
# 5  
Old 10-01-2014
Quote:
Originally Posted by Sharma331
Input file File1:
xyz Date Name Age State
------------------------------------------------------------------------------------
DATA 12 Sep 2014 14:00 EST Alia 22 Chennai
SAND 12 Sep 2014 14:00 EST Alia 22 Chennai
DATA 12 Sep 2014 14:00 EST Ashika 22 Chennai
DATA 12 Sep 2014 14:00 EST Bosky 22 Chennai
DATA 12 Sep 2014 14:00 EST Swati 22 Chennai

Input file File2:
xyz Date Name Age State
------------------------------------------------------------------------------------
DATA 12 Sep 2014 14:00 EST Alia 22 Chennai
DATA 12 Sep 2014 14:00 EST Ashika 22 Chennai
DATA 12 Sep 2014 14:00 EST Bosky 22 Chennai
DATA 12 Sep 2014 14:00 EST Swati 22 Chennai

As you can see there are some extra leading and trailling spaces.

input file File4(removes DATA)(xls file)
Date Name Age State
-------------------------------------------------------------------------------
12Sep201414:00EST Alia 22 Chennai
12Sep201414:00EST Ashika 22 Chennai
12Sep201414:00EST Bosky 22 Chennai
12Sep201414:00EST Swati 22 Chennai


I dont want my date column to be edited with space i just want name age and state column to be removed the trailing and leading spaces.
Hello Sharma331,

Following may help you in same, please use code tags while posting commands and codes in posts.

Code:
awk -vvar=" " 'NR==1{$1="";print} NR==2{print}  NR>2{$1="";V=$(NF-2) var $(NF-1) var $NF;{gsub(/EST.*/,"EST",$0);gsub(/[[:space:]]/,X,$0);print $0 OFS V}}' Input_file

Output will be as follows.
Code:
 Date Name Age State
------------------------------------------------------------------------------------
12Sep201414:00EST Alia 22 Chennai
12Sep201414:00EST Ashika 22 Chennai
12Sep201414:00EST Bosky 22 Chennai
12Sep201414:00EST Swati 22 Chennai

Thanks,
R. Singh

Last edited by RavinderSingh13; 10-01-2014 at 08:22 AM.. Reason: little editing for output
# 6  
Old 10-01-2014
Code:
sed '2!{s/[^ ]* //};1!{s/ //;s/ //;s/ //;s/ //;}' yourfile

Using Rudi's 5g stuff :

Code:
sed '2!{s/[^ ]* //;};1!{s/ /#/g;s/#/ /5g;s/#//g;}' yourfile

Code:
# cat tst
xyz Date Name Age State
------------------------------------------------------------------------------------
DATA 12 Sep 2014 14:00 EST Alia 22 Chennai
SAND 12 Sep 2014 14:00 EST Alia 22 Chennai
DATA 12 Sep 2014 14:00 EST Ashika 22 Chennai
DATA 12 Sep 2014 14:00 EST Bosky 22 Chennai
DATA 12 Sep 2014 14:00 EST Swati 22 Chennai
 
# sed '2!{s/[^ ]* //;};1!{s/ /#/g;s/#/ /5g;s/#//g;}' tst
Date Name Age State
------------------------------------------------------------------------------------
12Sep201414:00EST Alia 22 Chennai
12Sep201414:00EST Alia 22 Chennai
12Sep201414:00EST Ashika 22 Chennai
12Sep201414:00EST Bosky 22 Chennai
12Sep201414:00EST Swati 22 Chennai

Just another one :
Code:
# sed '2!{s/[^ ]* //;};1!{s/ /#/5g;y/ #/- /;}' tst
Date Name Age State
------------------------------------------------------------------------------------
12-Sep-2014-14:00-EST Alia 22 Chennai
12-Sep-2014-14:00-EST Alia 22 Chennai
12-Sep-2014-14:00-EST Ashika 22 Chennai
12-Sep-2014-14:00-EST Bosky 22 Chennai
12-Sep-2014-14:00-EST Swati 22 Chennai


Last edited by ctsgnb; 10-01-2014 at 09:32 AM..
# 7  
Old 10-01-2014
Leaving out the code tags you hid all those multiple spaces from us thus leading to inappropriate solutions. With that new info, try
Code:
sed -r 's/ +/ /g; s/DATA //p; 1s/^[^ ]* //p; 2!d' file1
Date Name Age State
------------------------------------------------------------------------------------
12 Sep 2014 14:00 EST Alia 22 Chennai
12 Sep 2014 14:00 EST Ashika 22 Chennai
12 Sep 2014 14:00 EST Bosky 22 Chennai
12 Sep 2014 14:00 EST Swati 22 Chennai

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Script to remove spaces and mv a file

I've tried various solutions to move a file name with spaces and nothing seems to work. I need to take a date as input, prepend it to a filename with spaces then remove the spaces and mv the file to the new name. #!/bin/ksh # if (( $# != 1 )) then echo "Usage: `basename $0` <DATE> " ... (5 Replies)
Discussion started by: w_s_s
5 Replies

2. Shell Programming and Scripting

Remove spaces from the file

Hi All, The output file contains data as below. "20141023","CUSTOMER" ,"COMPANY" ,"IN0515461" ,"" ,"JOSHUA" There are spaces in between the ending " and ,. The number of spaces is random. How can I remove that from the file so that the final output is:... (4 Replies)
Discussion started by: aarsh.dave
4 Replies

3. Shell Programming and Scripting

Remove spaces in a file

Hi friends, I have a file1.txt 1 | a | 4757634 | jund jdkj | erhyj 2 | a | 4757634 | jnd jdkj | rhje hjrhwj i have used tr -d '\040' to remove the spcaes output file cat file1.txt | tr -d '\040' 1|a|4757634|jundjdkj|erhyj... (5 Replies)
Discussion started by: i150371485
5 Replies

4. Shell Programming and Scripting

How to remove all blank spaces in a file

I have a file which contains data such as that shown below. How do i remove all the blcnak spaces, before, during and at the end of each line in one command? 300015, 58.0823212, 230.424728 300016, 58.2276459, 229.141602 300017, 58.7590027, 226.960846 ... (9 Replies)
Discussion started by: carlr
9 Replies

5. Linux

How to remove spaces in the file?

hiii i have a file that contains spaces in the begining of a file till the middle the from there the txt would appear. hw can i remove those spaces and bring the text to the begining portion file1 text starts from here (12 Replies)
Discussion started by: anurupa777
12 Replies

6. Shell Programming and Scripting

Remove EOL selectively

Hi, I have a text as below test1 test2 test3\ test4 test5 test6 test7 newtest1 newtest2\ newtest3 newtest4 newtest5 And need this to be replaces to test1 test2 test3 test4 test5 test6 test7 newtest1 newtest2 newtest3 newtest4 newtest5 So my requirement is to remove the EOL... (5 Replies)
Discussion started by: praveenbvarrier
5 Replies

7. UNIX for Dummies Questions & Answers

remove spaces in between file

hey, I have this file: ATOM 2510 HG12 VAL 160 8.462 15.861 1.637 ATOM 2511 HG13 VAL 160 9.152 14.510 0.725 ATOM 2512 CG2 VAL 160 6.506 16.579 -0.088 ATOM 2513 HG21 VAL 160 5.499 16.421 -0.478 ATOM 2514 HG22 VAL 160 6.417 16.984 ... (4 Replies)
Discussion started by: kanikasharma
4 Replies

8. Shell Programming and Scripting

how to remove blank spaces in file

hi i have a file which store some data.the contents of my file is data1:data2 data3:data4 i have a script which read this file correct="$(cat /root/sh | cut -d: -f1)" i used this syntax..please help me which syntax is used to remove blank spaces..then how to read this file.. (1 Reply)
Discussion started by: shubhig15
1 Replies

9. Shell Programming and Scripting

Remove trailing spaces from file

I'm currently writing my sql results to a file and they have trailing spaces after each field. I want to get rid of these spaces and I'm using this code: TVXTEMP=$(echo $TVXTEMP|sed -e 's/\ //g') It doesn't work though. I'm not familiar with sedscript, and the other codes I've found online... (6 Replies)
Discussion started by: avillanueva
6 Replies

10. Shell Programming and Scripting

How can i remove spaces in between the fields in a file

Hey , I have a file and it's having spaces for some of the fields in it. Like the one below. I want to remove the spaces in them through out the file. The spaces occur randomly and i can't say which field is having space. So please help. Here is sample file with spaces after 5th field. (3 Replies)
Discussion started by: dsravan
3 Replies
Login or Register to Ask a Question