Visit The New, Modern Unix Linux Community


Converting a text file with irregular spacing into a space delimited text file?


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Converting a text file with irregular spacing into a space delimited text file?
# 1  
Converting a text file with irregular spacing into a space delimited text file?

I have a text file with irregular spacing between values which makes it really difficult to manipulate. Is there an easy way to convert it into a space delimited text file so that all the spaces, double spaces, triple spaces, tabs between numbers are converted into spaces. The file looks like this:

Code:
1331  1 12 13 1  93.620   0.960  -0.420  57.410   1/  2   1/  1   1/  1   1/  2   
 1331  2 14 15 2  91.230   0.670 -99.999  49.980   0/  0   1/  2   1/  1   1/  2   
 1331  3  1  2 2  87.490   0.620 -99.999  47.890   1/  2   1/  2   1/  1   1/  2   
 1331  4  1  2 1  90.260   1.070 -99.999  63.810   0/  0   1/  1   1/  1   2/  2   
 1331  5  1  2 2  93.900   0.450 -99.999  57.440   1/  2   1/  1   1/  1   0/  0   
 1331  6  1  2 2  91.280   0.270 -99.999  59.970   1/  2   1/  1   1/  1   1/  2   
 1331  7  1  2 2  90.450   0.780  -0.090  51.850   1/  1   1/  2   1/  1   1/  1   
 1331  8  1  2 2  92.050   0.570   0.920  54.130   0/  0   1/  1   1/  1   0/  0

Thanks a lot!

Last edited by radoulov; 09-01-2011 at 06:01 PM.. Reason: Code tags, please!
# 2  
Code:
awk '{ $1=$1 } 1' < infile > outfile

should flatten it. The $1=$1 might look useless on first glance, but awk just prints the original lines unmodified if you don't modify any of the tokens -- this way it condenses the whitespace.
This User Gave Thanks to Corona688 For This Post:
# 3  
Code:
sed 's/[ \t]\{1,99\}/ /g' infile >outfile

(\t s/b a real tab)
# 4  
Code:
tr -s '\t' ' '

Regards,
Alister
# 5  
one more .. Smilie
Code:
$ awk '{ $(NF+1) = ""; print }' infile

# 6  
If it was all spaces, I wrote a delimiter I called colmark to turn the vertical columns of white space into pipe marks (ignoring random spaces). You could use 'pr -et' to expand any tabs appropriately, then use colmark to chop out the fields. Colmark is simple, could be done in shell, just make an array with a member '0' for each column and set to 1 if any line not space, then use that on a second pass to change successive spaces into pipes.
 

Previous Thread | Next Thread
Thread Tools Search this Thread
Search this Thread:
Advanced Search

Test Your Knowledge in Computers #41
Difficulty: Easy
In computer lingo, FAT stands for 'File Access Table'.
True or False?

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Changing only the first space to a tab in a space delimited text file

Hi, I have a space delimited text file but I only want to change the first space to a tab and keep the rest of the spaces intact. How do I go about doing that? Thanks! (3 Replies)
Discussion started by: evelibertine
3 Replies

2. UNIX for Dummies Questions & Answers

Swap two rows in a space delimited text file?

Hi, How do you swap two rows in a space delimited text file? Thanks! (4 Replies)
Discussion started by: evelibertine
4 Replies

3. UNIX for Dummies Questions & Answers

Adding tags to a specific column of a space delimited text file

I have a space delimited text file with two columns. I would like to add NA to the first column of the text file. Input: 19625 10.4791768259 19700 10.8146489183 19701 10.9084026759 19702 10.9861346978 19703 10.9304364984 Output: NA19625 10.4791768259 NA19700 10.8146489183... (1 Reply)
Discussion started by: evelibertine
1 Replies

4. UNIX for Dummies Questions & Answers

Deleting lines that contain a specific string from a space delimited text file?

Hi, I have a space delimited text file that looks like the following: 250 rs10000056 0.04 0.0888 4 189321617 250 rs10000062 0.05 0.0435 4 5254744 250 rs10000064 0.02 0.2403 4 127809621 250 rs10000068 0.01 NA 250 rs1000007 0.00 0.9531 2 237752054 250 rs10000081 0.03 0.1400 4 17348363... (5 Replies)
Discussion started by: evelibertine
5 Replies

5. UNIX for Dummies Questions & Answers

How do you view specific columns from a space delimited text file?

I have a space delimited text file with 1,000,000+ columns? I would only like to view specific ones (let's say through 1:10), how can I do that? Thanks! (3 Replies)
Discussion started by: evelibertine
3 Replies

6. UNIX for Dummies Questions & Answers

Deleting cells that contain a specific number only from a space delimited text file

I have this space delimited large text file with more than 1,000,000+ columns and about 100 rows. I want to delete all the cells that consist of just 2 (leave 2's that are not by themselves intact): File before modification aa bb cc 2 NA100 dd aa b1 c2 2 NA102 de File after modification... (1 Reply)
Discussion started by: evelibertine
1 Replies

7. UNIX for Dummies Questions & Answers

Deleting columns from a space delimited text file

I have a space delimited text file with 1,000,000+ columns and 100 rows. I want to delete columns 2 through 5 (2 and 5) included from the text file. How do I do that? Thanks. (3 Replies)
Discussion started by: evelibertine
3 Replies

8. Shell Programming and Scripting

replace 3rd field of space delimited text file

how to replace the 3rd colum? Each line begins similarly, but they all ends variously. XX YY 03 variable text here XX YY 03 more variable text here XX YY 03 even more variable text here really long setence XX YY 03 variable numbers also appear 03 11. 123 456 XX YY 03 the occasional comma,... (4 Replies)
Discussion started by: ajp7701
4 Replies

9. UNIX for Dummies Questions & Answers

Converting Space delimited file to Tab delimited file

Hi all, I have a file with single white space delimited values, I want to convert them to a tab delimited file. I tried sed, tr ... but nothing is working. Thanks, Rajeevan D (16 Replies)
Discussion started by: jeevs81
16 Replies

10. UNIX for Dummies Questions & Answers

Searching for text in a Space delimited File

Hi I am trying to search a firewall syslog space delimeted file for all of the different tcp and udp destination ports. I know that grep will find lines that contain specific text. And I have tried using the the the cut command to cut out of the file certain colums. However the test I am... (6 Replies)
Discussion started by: andyblaylock
6 Replies

Featured Tech Videos