replace "," with "." only in specific columns of a file?


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers replace "," with "." only in specific columns of a file?
# 1  
Old 08-08-2011
Question replace "," with "." only in specific columns of a file?

Hi all,

I have this text file containing 9 columns separated by space. The 8th columns contains the numbers.

C1 C2 C3 C4 C5 C6 C7 C8 C9
er rt yt gh iu nk il 0.07 xs
yt lr ty bg iu zk nh 0,0005 lt
...etc.

I want to replace the comma with full stop only in 8th coloumn.

the output would be
C1 C2 C3 C4 C5 C6 C7 C8 C9
er rt yt gh iu nk il 0.07 xs
yt lr ty bg iu zk nh 0.0005 lt

I am using cygwin on windows!
Thanks for your inputs!
# 2  
Old 08-08-2011
Do you have AWK there?
Code:
awk '{sub (",",".",$8)}1' file

# 3  
Old 08-08-2011
Power

Thanks a lot bartus11.

That is working fine. However, I still have this problem...

The 8th coloumn in my text file contains the values which are less than 1. Hence the text file puts them in this format...ex.2.5e-005 instead of 0.000025.
When I sort my file according to values in the 8th coloumn in ascending order, it is not recognizing the values which are in "2.5e-005' format!

Any suggestions!!

Thanks
# 4  
Old 08-08-2011
Post some bigger sample of that data.
# 5  
Old 08-08-2011
Here you go,

File.txt

MarkerName Allele1 Allele2 Freq1 FreqSE Weight Zscore P-value Direct
1kg_2_25451489 c g 0.3220 0.0329 233.00 3.732 0.0001903+++-
imm_12_9663851 a g 0.1388 0.0111 209.00 3.724 0.0001958+++?
imm_12_9679839 a g 0.8612 0.0111 209.00 -3.724 0.0001958---?
imm_12_9698340 t c 0.8804 0.0107 233.00 -4.215 2.5e-005----
imm_12_9698384 a g 0.8804 0.0107 233.00 -4.215 2.5e-005----
imm_12_9698598 a g 0.8804 0.0107 233.00 -4.215 2.5e-005----
imm_12_9699693 t c 0.8804 0.0107 233.00 -4.215 2.5e-005----
imm_12_9699837 t c 0.8804 0.0107 233.00 -4.215 2.5e-005----

So when I sort them according to 8th coloumn, I would expect it to have

MarkerName Allele1 Allele2 Freq1 FreqSE Weight Zscore P-value Direct
imm_12_9698340 t c 0.8804 0.0107 233.00 -4.215 2.5e-005----
imm_12_9698384 a g 0.8804 0.0107 233.00 -4.215 2.5e-005----
imm_12_9698598 a g 0.8804 0.0107 233.00 -4.215 2.5e-005----
imm_12_9699693 t c 0.8804 0.0107 233.00 -4.215 2.5e-005----
imm_12_9699837 t c 0.8804 0.0107 233.00 -4.215 2.5e-005----
1kg_2_25451489 c g 0.3220 0.0329 233.00 3.732 0.0001903+++-
imm_12_9663851 a g 0.1388 0.0111 209.00 3.724 0.0001958+++?
imm_12_9679839 a g 0.8612 0.0111 209.00 -3.724 0.0001958---?

Thanks!
# 6  
Old 08-08-2011
Shouldn't there be space between 0.0001903 and +++- ?
# 7  
Old 08-08-2011
oh there should be space!

Please see the attached text for ex.

Cheers
 
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. AIX

Apache 2.4 directory cannot display "Last modified" "Size" "Description"

Hi 2 all, i have had AIX 7.2 :/# /usr/IBMAHS/bin/apachectl -v Server version: Apache/2.4.12 (Unix) Server built: May 25 2015 04:58:27 :/#:/# /usr/IBMAHS/bin/apachectl -M Loaded Modules: core_module (static) so_module (static) http_module (static) mpm_worker_module (static) ... (3 Replies)
Discussion started by: penchev
3 Replies

2. Shell Programming and Scripting

Bash script - Print an ascii file using specific font "Latin Modern Mono 12" "regular" "9"

Hello. System : opensuse leap 42.3 I have a bash script that build a text file. I would like the last command doing : print_cmd -o page-left=43 -o page-right=22 -o page-top=28 -o page-bottom=43 -o font=LatinModernMono12:regular:9 some_file.txt where : print_cmd ::= some printing... (1 Reply)
Discussion started by: jcdole
1 Replies

3. UNIX for Dummies Questions & Answers

Using "mailx" command to read "to" and "cc" email addreses from input file

How to use "mailx" command to do e-mail reading the input file containing email address, where column 1 has name and column 2 containing “To” e-mail address and column 3 contains “cc” e-mail address to include with same email. Sample input file, email.txt Below is an sample code where... (2 Replies)
Discussion started by: asjaiswal
2 Replies

4. Shell Programming and Scripting

Substituting comma "," for dot "." in a specific column when comma"," is a delimiter

Hi, I'm dealing with an issue and losing a lot of hours figuring out how i would solve this. I have an input file which looks like this: ('BLABLA +200-GRS','Serviço ','TarifaçãoServiço','wap.bla.us.0000000121',2985,0,55,' de conversão em escada','Dia','Domingos') ('BLABLA +200-GRR','Serviço... (6 Replies)
Discussion started by: poliver
6 Replies

5. Solaris

The slices "usr", "opt", "tmp" disappeared!!! Help please.

The system don't boot. on the screen appears following: press enter to maintenance (or type CTRL-D to continue)...I checked with format command. ... the slices "0-root","1-swap","2-backup" exist. ...the slises "3-var","6-usr" -unassigned. :( (16 Replies)
Discussion started by: wolfgang
16 Replies

6. Shell Programming and Scripting

how to use "cut" or "awk" or "sed" to remove a string

logs: "/home/abc/public_html/index.php" "/home/abc/public_html/index.php" "/home/xyz/public_html/index.php" "/home/xyz/public_html/index.php" "/home/xyz/public_html/index.php" how to use "cut" or "awk" or "sed" to get the following result: abc abc xyz xyz xyz (8 Replies)
Discussion started by: timmywong
8 Replies

7. Shell Programming and Scripting

awk command to replace ";" with "|" and ""|" at diferent places in line of file

Hi, I have line in input file as below: 3G_CENTRAL;INDONESIA_(M)_TELKOMSEL;SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL My expected output for line in the file must be : "1-Radon1-cMOC_deg"|"LDIndex"|"3G_CENTRAL|INDONESIA_(M)_TELKOMSEL"|LAST|"SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL" Can someone... (7 Replies)
Discussion started by: shis100
7 Replies

8. Shell Programming and Scripting

cat $como_file | awk /^~/'{print $1","$2","$3","$4}' | sed -e 's/~//g'

hi All, cat file_name | awk /^~/'{print $1","$2","$3","$4}' | sed -e 's/~//g' Can this be done by using sed or awk alone (4 Replies)
Discussion started by: harshakusam
4 Replies

9. UNIX for Dummies Questions & Answers

Explain the line "mn_code=`env|grep "..mn"|awk -F"=" '{print $2}'`"

Hi Friends, Can any of you explain me about the below line of code? mn_code=`env|grep "..mn"|awk -F"=" '{print $2}'` Im not able to understand, what exactly it is doing :confused: Any help would be useful for me. Lokesha (4 Replies)
Discussion started by: Lokesha
4 Replies
Login or Register to Ask a Question